package com.gwt.caiwu.controller;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.gwt.flow.service.UploadService;
import com.gwt.utils.JsonData;
@RestController
public class UploadController {
@Value("${web.upload-path}")
private String uploadPath;
//配置文件中相应的地址
@Value("${server.servlet.context-path}")
private String contextPath;
@Autowired
private UploadService uploadService;
@PostMapping("/upload/fileingupload")
public Object uploadFile(@RequestParam("files") MultipartFile files) {
Map<String,Object> map = uploadService.uploadfile(files,this.uploadPath,this.contextPath);
return JsonData.buildSuccess(map);
}
}
这里是service层的实现方法
private String fileDirPath = "static/files/company/";
@Override
public Map<String, Object> uploadfile(MultipartFile files, String uploadPath, String contextPath) {
Map<String,Object> map = new HashMap<String, Object>();
if(files.isEmpty()) {
map.put("msg", "error");
map.put("data", "上传失败");
return map;
}
String fileName = files.getOriginalFilename();
SimpleDateFormat sim = new SimpleDateFormat("yyyyMMddhhmmss");
String prefixName = sim.format(new Date());
String filePath = uploadPath + this.fileDirPath;
//创建一个文件夹
File dir = new File(filePath);
if(!dir.exists()) {
dir.mkdirs();
}
//这里是创建一个新的文件
dir = new File(filePath +prefixName+ fileName);
try {
//Transfer the received file to the given destination file.(把在页面上选择的文件,转到服务器上创建的文件里面)
files.transferTo(dir);
map.put("msg", "ok");
map.put("data", "上传成功");
map.put("file", "/"+this.fileDirPath+prefixName+fileName);
} catch (IllegalStateException | IOException e) {
map.put("msg", "error");
map.put("data", "上传失败");
}
return map;
}
配置文件
web:
upload-path: D:/ObjectTemp/
server:
port: 8008
servlet:
context-path: /zc
//静态地址配置
spring:
resources:
static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${web.upload-path}static