web版文件管理系统 ——文件图标的获取
需求来源
公司需要一个文件的管理系统,方便管理公司文档以及互相传阅以及一些权限控制的便利,其中极小的一块功能点就是现实文件列表里面的图标获取,从网上找图标太麻烦,而且不现实,不可能用户每次上传文件等你去网上找到一个图标来使用,而且网上找的图标并没有合适与文件现实的,基于这一系列的困扰,最后使用了扣去电脑本身的图标保存为图片,并当作列表图标现实
如下效果:
一、实现思路
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+文件后缀在加上图片格式
文件上传的图标获取则是通过该通用方法,在文件上传完成后,获取该绝对路径,获取到图标后根据自定义需求
保存,文件上传同理,只不过需要根据文件夹里面的文件循环此操作
目前整个系统已整体需求开发完成,后续有时间慢慢分享一些有用的小知识点