一:首先要配置文件存放设置
spring:
mvc:
view:
prefix: /WEB-INF/view/
suffix: .jsp
#文件映射路径
static-path-pattern: /**
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/news?useUnicode=true&characterEncoding=UTF-8
username: root
password: zhengmeng001
#服务器文件存放路径
resources:
static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/itstyle/, file:/
servlet:
#上传文件大小限制
multipart:
max-request-size: 10MB
max-file-size: 10MB
二:上传图片方法实现
/**
* 1.获取该上传的文件
* 2.设置文件名
* 3.设置存放路径
* 4.写入文件
*
* 注意要加synchronized 保持线程同步
*
* @return
* @throws IOException
* @throws ServletException
*/
@RequestMapping("/addNewsImage")
@ResponseBody
public synchronized ImageModel updataNewsImage() throws IOException, ServletException {
System.out.println(request.getPart("file").toString());
//1.获取该上传的文件
//拿到该文件
Part part = request.getPart("file");
//获取上传的作者
String username = request.getParameter("username");
String titleId = request.getParameter("titleId");
System.out.println("uusername = "+username);
System.out.println("titleId = "+titleId);
Random random = new Random();
int i = random.nextInt(10000);
/**
* 2.设置文件名
* 生成文件名,可以使用时间戳来命名,也可以自行命名
*/
String fileName = Helper.getFileName()+i + ".jpg";
System.out.println(fileName);
//3.设置存放路径
//文件存放的根目录
String savePathRoot = "F:\\photo\\news";
//每个新闻建立一个文件夹
String savePath = savePathRoot + "\\" + titleId;
//建立文件夹
File file_root = new File(savePath);
file_root.mkdir();
//4.写入文件
part.write(savePath + File.separator + fileName);
String result_url = Constant.IMAGE_NEWS+titleId+"/"+fileName;
System.out.println(result_url);
//返回图片地址
return new ImageModel(Constant.SUCESS,"上传成功",1,result_url);
}