需求来源:公司需要一个文件的管理系统,方便管理公司文档以及互相传阅以及一些权限控制的便利,其中极小的一块功能点就是现实文件列表里面的图标获取,从网上找图标太麻烦,而且不现实,不可能用户每次上传文件等你去网上找到一个图标来使用,而且网上找的图标并没有合适与文件现实的,基于这一系列的困扰,最后使用了扣去电脑本身的图标保存为图片,并当作列表图标现实

如下效果:

一、实现思路

  1、初始化图标获取

    1)、根据所有用户信息,获取用户文件数据,在根据绝对路径在存放文件的服务器寻找需要的文件图标,并保存

  2、文件上传图标获取

    1)、文件上传获取图标

    2)、文件夹上传批量获取图标(跟初始化获取同理)

二、上列需求的完成都指向一点,就是首先需要一个扣电脑图标的方法

  1、获取电脑图标的公共使用方法:

public static void initializationIcon(String iconpath, String iconname) {
File file = new File(iconpath); //提取图标的应用程序
OutputStream inStream = null; //图标保存地址
try {
inStream = new FileOutputStream(new File( iconname + ".jpg"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
BufferedImage www = (BufferedImage) ((ImageIcon) toIcon(file)).getImage();
ImageIO.write(www, "png", inStream);
inStream.flush();
inStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public int initializationfileicon() {
String propath = FileUtil.getProFilePath() + "/";
String iconpath = FileUtil.getProFilePathIcon() + "/";
List<FileTreeEntity> loginUserEntities = fileTreeDao.getFileTreeData(null);
for (FileTreeEntity t : loginUserEntities
) {
// System.out.println(t.toString());
if (t.getFileType().equals("文件")) {
System.out.println(t.toString());
IconUtil.initializationIcon(propath + t.getFilePath(), iconpath + t.getId() + t.getFileSuffix());
} }
return 1;
}

以上代码为1、获取电脑文件图标方法

     2、初始化获取所有用户文件图标方法,为了前端区分使用,存储图标的规则为ID+文件后缀在加上图片格式

文件上传的图标获取则是通过该通用方法,在文件上传完成后,获取该绝对路径,获取到图标后根据自定义需求

保存,文件上传同理,只不过需要根据文件夹里面的文件循环此操作

目前整个系统已整体需求开发完成,后续有时间慢慢分享一些有用的小知识点

web版文件管理系统 ——文件图标的获取的更多相关文章

  1. Linux 磁盘和文件管理系统 文件打包解压备份 VIM、VI编辑器

  2. WEB版一次选择多个文件进行批量上传(Plupload)的解决方案

    WEB版一次选择多个文件进行批量上传(Plupload)的解决方案  转载自http://www.cnblogs.com/chillsrc/archive/2013/01/30/2883648.htm ...

  3. WEB版一次选择多个文件进行批量上传(WebUploader)的解决方案

    本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...

  4. POI生成Web版Word文件

    POI生成Web版Word文件 1       通过URL的输入流实现 2       直接把Html文本写入到Word文件 所谓的使用POI生成Web版Word文件是指利用POI将Html代码插入到 ...

  5. WEB版一次选择多个文件进行批量上传(swfupload)的解决方案

    说明:功能完全支持ie和firefox浏览器! 一般的WEB方式文件上传只能使用FileUpload控件进行一个文件一个文件的进行上传,就算是批量上传,也要把文件一个一个的添加到页面,无法如windo ...

  6. [Plugin] WEB版一次选择多个文件进行批量上传(swfupload)的解决方案

    URL:http://www.cnblogs.com/chillsrc/archive/2010/02/21/1670594.html 说明:功能完全支持ie和firefox浏览器! 一般的WEB方式 ...

  7. java版ftp简易客户端(可以获取文件的名称及文件大小)

    java版ftp简易客户端(可以获取文件的名称及文件大小) package com.ccb.ftp; import java.io.IOException; import java.net.Socke ...

  8. delphi 动态获取文件类型的图标

    delphi 动态获取文件类型的图标.txt我不奢望什么,只希望你以后的女人一个不如一个.真怀念小时候啊,天热的时候我也可以像男人一样光膀子!在应用程序的编写中,组合框(ComboBox).列表框(L ...

  9. 详解:基于WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器功能

    文件同步传输工具比较多,传输的方式也比较多,比如:FTP.共享.HTTP等,我这里要讲的就是基于HTTP协议的WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器这样的一个工具(简称:一 ...

随机推荐

  1. mySQL初学者需要掌握的【数据库与表的基本操作】

    本内容会持续更新的哦! 注:"字段"="列","记录''="行" 文章目录 一:数据库的基本操作 二.数据表的基本操作 1.创建与 ...

  2. MAC下go语言的安装和配置

    Mac下安装一些文件都是比较简单的.安装了brew以后,很多的程序只要一条命令就搞定了. brew install go 安装好go语言以后主要是配置go_path,和go_root的地址. go_r ...

  3. Zabbix监控使用进阶

    1. Zabbix基于SNMP监控 1.1 zabbix-web所能指定的监控方式 ssh/telnet agent:master/agent SNMP:Simple Network Manageme ...

  4. PyQt(Python+Qt)学习随笔:Model/View架构概述

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.引言 模型-视图-控制器(Model-View-Controller,简称MVC)是一种源于Sm ...

  5. PyQt(Python+Qt)学习随笔:QListView的viewMode属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的viewMode属性用于控制QListView的视图模式,该属性类型为枚举类型Q ...

  6. 国际关注,Panda 交易所获悉美银监机构批准特许银行托管加密资产

    近期,Panda 交易所注意到,根据此前与Cointelegraph分享的一份声明,美国货币监理署(OCC)正在授予联邦特许银行托管加密货币的权限. 鉴于加密钱包与其他种类资产的托管要求不同,这一问题 ...

  7. Angular:惰性加载的模块

    ①通过ng new angular-module创建一个全新的angular应用,默认不选路由 ②通过一下命令分别创建2个模块和1个组件 ng g m hx1 ng g c hx1 ng g m hx ...

  8. 面试官:小伙子,你给我简单说一下RocketMQ 整合 Spring Boot吧

    前言 在使用SpringBoot的starter集成包时,要特别注意版本.因为SpringBoot集成RocketMQ的starter依赖是由Spring社区提供的,目前正在快速迭代的过程当中,不同版 ...

  9. S3C2440从NAND Flash启动和NOR FLASH启动的问题

    1.为什么NAND FLASH不能直接运行程序     NAND FLASH本身是连接到了控制器上而不是系统总线上.CPU运行机制为:CPU启动后是要取指令执行的,如果是SROM.NOR FLASH ...

  10. Hyper-v 虚拟机使用NAT方式连接网络

    最近因为搞docker的原因,卸掉了vb和vm,用上了hyper. 其实一直挺喜欢hyper-v的,但是一直都受虚拟网络的影响--hyper-v创建不了vm和vb使用的那种NAT连接方式. 默认使用外 ...