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

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

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最大请求内容长度,请求根本不会进去后台。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5682993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存