SpringMVC 单文件,多文件上传实现详解

网友投稿 289 2022-12-26


SpringMVC 单文件,多文件上传实现详解

需要用到的流的相关知识:https://jb51.net/article/170640.htm

SpringMVC中写好了文件上传的类。

要使用文件上传,首先需要文件上传相关的Jar包。commons-fileupload.jar 和 commons-io.jar。

添加到pom.xml或lib文件夹下。

pom.xml:

commons-fileupload

commons-fileupload

1.3.1

commons-io

commons-io

在SprigMVC的配置文件中添加bean(id和class都是固定写法):

前端写一个单文件上传的表单,一个多文件上传的表单(多文件上传的表单中,多个文件输入input中的name相同):

文件描述:


请选择文件:



文件描述:


请选择文件:

请选择文件1: http://

请选择文件2: http://

文件上传中,参数要使用MultipartFile而不是File类,不能使用FileUtils.copyFile()来复制文件,因此使用流来输出到磁盘

单文件多文件只是将单文件中传递来的file参数改为数组形式,将方法内的file有关的操作都变为数组即可。

单文件上传

也可以不使用流,下面这句看到有人使用,但是没有测试。

File dest = new File(filePath + fileName); file.transferTo(dest);

@RequestMapping("testUpload")

public String testUpload(@RequestParam("desc") String desc, @RequestParam("file") MultipartFile file) throws IOException {

System.out.println("文件描述:" + desc);

// 得到文件的输入流

InputStream inputStream = file.getInputStream();

// 得到文件的完整名字 img.png/hh.docx

String fileName = file.getOriginalFilename();

// 输出流

OutputStream outputStream = new FileOutputStream("C:\\tmp\\" + fileName);

// 缓冲区

byte[] bs = new byte[1024];

int len = -1;

while ((len = inputStream.read(bs)) != -1) {

outputStream.write(bs,0,len);

}

inputStream.close();

outputStream.close();

return "success";

}

多文件上传

@RequestMapping("testMutiUpload")

public String testMutiUpload(@RequestParam("desc") String desc, @RequestParam("file") MultipartFile[] files) throws IOException {

System.out.println("文件描述:" + desc);

for (MultipartFile file :

files) {

InputStream inputStream = file.getInputStream();

OGQkADJMW String fileName = file.getOriginalFilename();

OutputStream outputStream = new FileOutputStream("C:\\tmp\\" + fileName);

byte[] bs = new byte[1024];

int len = -1;

while ((len = inputStream.read(bs)) != -1) {

outputStream.write(bs,0,len);

}

inputStream.close();

outputStream.close();

}

return "success";

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring Boot 部署过程解析(jar or war)
下一篇:企业微信api测试工具(java企业微信api工具开发)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~