文件上传工具类(重命名,以及判断类型)
2016-05-21 15:58
316 查看
public class FileUploadUtil { public static final List<String> ALLOW_TYPES = Arrays.asList( "image/jpg","image/jpeg","image/png","image/gif" ); //文件重命名 public static String rename(String fileName){ int i = fileName.lastIndexOf("."); String str = fileName.substring(i); return new Date().getTime()+""+ new Random().nextInt(99999999) +str; } //校验文件类型是否是被允许的 public static boolean allowUpload(String postfix){ return ALLOW_TYPES.contains(postfix); } }
//自己写的一个使用例子 private void uploadGoodsImg( MultipartFile[] imageFiles, String goodsId, String realPath, String resourcePath, String type ) throws IOException { if (imageFiles != null) { for (int i = 0; i < imageFiles.length; i++) { MultipartFile imageFile = imageFiles[i]; //先检验文件类型是否被允许 if (FileUploadUtil.allowUpload(imageFile.getContentType())) { // 获得文件名称后重命名 String fileName = goodsId + FileUploadUtil.rename(imageFile.getOriginalFilename()); File file = new File(realPath + resourcePath + fileName); imageFile.transferTo(file); //缩略图 Thumbnails.of(file) .size(160, 160) .keepAspectRatio(false) .outputFormat("jpg") .toFile(new File(realPath + resourcePath, fileName + "_160x160.jpg")); String imgUrl = resourcePath + fileName; GoodsImg goodsImg = new GoodsImg(); goodsImg.setId(UUID.randomUUID().toString()); goodsImg.setGoodsId(goodsId); goodsImg.setUrl(imgUrl); goodsImg.setSort(i + 1); goodsImgDao.insert(goodsImg); } else { throw new RuntimeException("文件类型不合法,只能是 jpg、gif、png、jpeg 类型!"); } } } else if(type.equals("add")) { GoodsImg goodsImg = new GoodsImg(); goodsImg.setId(UUID.randomUUID().toString()); goodsImg.setGoodsId(goodsId); goodsImg.setUrl(null); goodsImg.setSort(1); goodsImgDao.insert(goodsImg); } }
相关文章推荐
- phpjm解密程序,也适用于其他混淆加密的破解
- CSS float浮动的深入研究、详解及拓展(二)
- C++图像处理中从硬盘读入图像文件,并将相应数据赋值给图像类的char**data成员
- Java线程池使用说明
- Class文件结构
- 软键盘挤压布局的问题
- 字符串测试题1
- maven出错The folder is already a source folder
- css样式问题,table中的td值撑开了,样式变了
- mysql 安装 和 配置 在 centos 7
- POJ-1287-Networking(最小生成树 普利姆)
- 移动开发内存分类
- new和delete 基类指针指向继承类的对象时,delete的过程
- c++实现矩阵的余弦相似度
- 学习练习 java面向对象封装汽车
- IIS配置
- Axure 实现数字自动加键功能(点击“+”数字加1,点击“-”数字减1)
- PHP学习笔记——文件操作
- [bzoj3510]首都
- 剑指offer11--让数组变成左边奇数右边偶数