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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值