楔子
通常表單字段要和
MultipartFile
字段相對應才能上傳 接受到文件,但是如果不清楚 表單字段的情況 需要上傳文件,就需要其他方法。
不清楚表單字段上傳文件
測試效果
附帶上傳 表單文本數據
上傳後臺接受
圖片保存
/**
* * 在不知道文件名情況下獲取上傳文件
*
* @param file
* @param request
* @return
*/
@RequestMapping(value = "upfile", method = RequestMethod.POST)
public @ResponseBody String uploadOssFile(MultipartFile file, HttpServletRequest request, Person person) {
String picPath = environment.getProperty("pic.Path");
String picUrl = environment.getProperty("pic.Url");
log.info(StringUtils.repeat('-', 28));
log.info("pserson:{}", person.toString());
// String url = ossService.uploadOssFile(file);
MultipartHttpServletRequest mr = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = mr.getFileMap();
Set<Map.Entry<String, MultipartFile>> entries = fileMap.entrySet();
String url = null;
for (Map.Entry<String, MultipartFile> entry : entries) {
MultipartFile multipartFile = entry.getValue();
String key = entry.getKey();
url = multipartFile.getOriginalFilename();
log.info("key-value|表單字段和文件名分別是|:{},{}", key, multipartFile.getOriginalFilename());
try {
// TODO 此方法無法自動創建不存在的文件夾
// multipartFile.transferTo(new File(picPath +
// multipartFile.getOriginalFilename()));
// 文件保存
url = SysUtils.getDateStrSpan_() + "/" + SysUtils.getDate4() + multipartFile.getOriginalFilename();
// TODO 可以自動創建不存在的文件夾
FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), new File(picPath + url));
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return String.format("%s/%s", picUrl, url);
}
}
demo
https://gitee.com/demo51/springboot-jsp
FileUpController.uploadOssFile(MultipartFile, HttpServletRequest, Person)