MultipartFile 文件对象保存到本地(服务器)文件夹

MultipartFile 文件对象保存到本地(服务器)文件夹

代码思路

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;


// 将文件保存在服务器目录中
// 新生成的文件名称
String uuid = UUID.randomUUID().toString();
// 得到上传文件后缀
String originalName = file.getOriginalFilename();
String ext = "." + FilenameUtils.getExtension(originalName);
// 新生成的文件名称
String fileName = uuid + ext;
// 得到新的文件File对象
File targetFile = new File("D:\\sim-file\\", fileName);
// 开始复制文件
FileUtils.writeByteArrayToFile(targetFile, file.getBytes());

完整代码

public void saveFileByDirectory (MultipartFile file) {
		try {
			// 将文件保存在服务器目录中
			// 文件名称
			String uuid = UUID.randomUUID().toString();
			// 得到上传文件后缀
			String originalName = file.getOriginalFilename();
			String ext = "." + FilenameUtils.getExtension(originalName);
			// 新生成的文件名称
			String fileName = uuid + ext;
			// 复制文件
			File targetFile = new File("D:\\sim-file\\", fileName);
			FileUtils.writeByteArrayToFile(targetFile, file.getBytes());
		} catch (IOException e) {
			logger.error("保存文件到服务器(本地)失败",e);
		}
	}

应用场景

可以将生成好的uuid传回前台进行hidden保存,然后再次请求时,通过得到uuid文件名称和已知的(配置好的)文件路径就可以找到上传的文件了。

① 上传Excel时,需要对Excel进行预展示,这个时候就可以把展示的集合list和文件名称传回前台。集合list用来展示;文件名称用来传到后台进行读取文件入库保存。

疑问1:为什么不在前台界面通过集合list循环成json对象,通过post请求后台进行保存?

回答:当excel文件内容比较少时,是可行的,当Excel条数超过了500,1000条时,json对象超过了post最大请求内容长度,请求根本不会进去后台。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值