基于springMVC的文件上传-图片
来源:互联网 发布:福利app软件 编辑:程序博客网 时间:2024/04/19 07:49
文件上传有多种工具类可以选择,比如:conmons-FileUpload.jar , springMVC自带的文件上传工具类。在多种工具类里本人觉得transferTo()方法最简便好用。下面是基于它实现的图片上传功能的代码。当然它不仅只限于图片格式。
package com.jjs.app.web.controller;import java.io.File;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.commons.CommonsMultipartFile;import com.mljr.carfinance.crm.app.util.FileUtils;import com.mljr.carfinance.crm.app.util.Logs;import com.mljr.carfinance.crm.app.util.RespMsg;/** * 图片上传下载类 * @author jjs * */@RestController@RequestMapping("/img")public class UploadImgController extends BaseController{@Value("${img.upload.dir}")private static String imgUploadDir;// 图片上传路径/** * 图片上传 * @param imgFile * @return RespMsg * @throws IllegalStateException * @throws IOException */@RequestMapping("/upload")@ResponseBodypublic RespMsg upLoad(@RequestParam("imgFile") MultipartFile imgFile) throws IllegalStateException, IOException{if(imgFile != null){String imgName = imgFile.getOriginalFilename();String ext = imgName.substring(imgName.lastIndexOf(".") +1);if(ext.equals("jpg") || ext.equals("png") || ext.equals("jpeg")){SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");String dir = sf.format(new Date()); File dayDir = new File(imgUploadDir + File.separator + dir);sf.applyPattern("yyyyMMddHHmmssSSS");String newImgName = sf.format(new Date()) + "_" + new Random().nextInt(1000) + "." + ext;String savePath = dayDir + File.separator + newImgName;imgFile.transferTo(FileUtils.createFile(new File(savePath)));Logs.C.info("图片'"+ imgName +"'上传成功", savePath);return success("上传成功");}}return fail("上传失败");}/** * 多图片同时上传 * @param imgFile * @return RespMsg * @throws IllegalStateException * @throws IOException */@RequestMapping("/multiUpload")@ResponseBodypublic RespMsg upLoad(@RequestParam("imgFile") CommonsMultipartFile[] imgFiles) throws IllegalStateException, IOException{if(imgFiles.length != 0){for(int i = 0; i < imgFiles.length; i++){if(imgFiles[i] != null && imgFiles[i].getSize()!=0){String imgName = imgFiles[i].getOriginalFilename();String ext = imgName.substring(imgName.lastIndexOf(".") +1);if(ext.equals("jpg") || ext.equals("png") || ext.equals("jpeg")){SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");String dir = sf.format(new Date()); File dayDir = new File(imgUploadDir + File.separator + dir);sf.applyPattern("yyyyMMddHHmmssSSS");String newImgName = sf.format(new Date()) + "_" + new Random().nextInt(1000) + "." + ext;String savePath = dayDir + File.separator + newImgName;imgFiles[i].transferTo(FileUtils.createFile(new File(savePath)));Logs.C.info("图片'"+ imgName +"'上传成功", savePath);}}}return success("上传成功");}return fail("上传失败");}}
工具类:
package com.jjs.app.util;import java.io.File;import java.io.IOException;/** * 文件工具类 * @author jjs * */public class FileUtils {public static File createFile(File file) throws IOException {if (!file.exists()) {makeDir(file.getParentFile());}file.createNewFile();return file;}public static void makeDir(File dir) {if (!dir.getParentFile().exists()) {makeDir(dir.getParentFile());}dir.mkdir();}}
1 0
- 基于springMVC的文件上传-图片
- 基于SpringMVC的文件上传
- 基于SpringMVC的上传文件
- SpringMVC的图片(文件)上传
- springmvc 文件上传,图片上传的方法
- 基于配置的springMVC图片上传
- springmvc上传图片文件
- 基于springmvc的文件上传及其讲解
- 基于SpringMVC的文件上传和下载
- 基于springmvc的文件上传与下载
- SpringMVC的文件上传(基于原生Servlet的文件上传)
- 基于springmvc实现静态资源缓存(包括上传的图片文件)
- 基于前后端分离的ajax+springMVC+ftp文件(含图片)上传
- SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】
- Bootstrap fileinput的图片上传 java框架基于springMVC
- SpringMVC的上传图片
- springmvc上传文件(图片)
- SpringMVC之图片(文件)上传
- MongoDB的学习(二)-基本的操作
- 1.读懂tornado的预备知识:什么是epoll
- 关于Pointcut Joinpoint Advice Advisor的理解
- 有参数构造函数的调用
- 数据结构—二叉树层次遍历
- 基于springMVC的文件上传-图片
- 设计模式06_装饰者模式
- 阿里云CentOS7 Samba安装
- 基于最小生成树的实时立体匹配算法简介
- 如何把jvm垃圾回收信息打印到文件
- Java设计模式(九):组合模式composite
- 2.开始Tornado的源码分析之旅
- tiny_cnn源码阅读(1)-编译运行源码
- Hust oj 1990 函数F(x)(暴力)