springboot不清楚表单字段上传

楔子

通常表单字段要和 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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章