700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用commons-fileupload包实现文件上传

使用commons-fileupload包实现文件上传

时间:2020-12-02 01:18:24

相关推荐

使用commons-fileupload包实现文件上传

首先,需要在pom文件中添加相关依赖

<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version></dependency><!-- /artifact/commons-io/commons-io --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>

编写前端页面

form表单必须添加enctype="multipart/form-data属性,input设置为file类型,这里的name属性不能省略,可能导致文件上传失败。

<form action="file/fileupload" method="post" enctype="multipart/form-data">选择文件:<input type="file" name="upload"/><br/><input type="submit" value="上传"/></form>

编写文件上传控制器

List<FileItem> items获取的是所有表单元素,通过isFormField判断当前元素是普通表单项还是文件上传项。通过在上传文件前面添加uuid,可以实现将相同文件上传多次,并且实际存储的文件名不同。真实文件名可通过“-”进行简单拆分获取。

@Controller@RequestMapping("/file")public class FileUploadController {@RequestMapping("/fileupload")public String doFileUpload(HttpServletRequest request) throws Exception {//文件上传路径String path = request.getSession().getServletContext().getRealPath("/uploads");//打印文件上传地址//System.out.println(path);File file = new File(path);if(!file.exists()){file.mkdirs();}//解析request对象,获取上传文件项DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);//解析requestList<FileItem> items = upload.parseRequest(request);for(FileItem item:items){//判断是否为文件上传项if(!item.isFormField()){String fileName = item.getName();String uuid = UUID.randomUUID().toString();fileName = uuid + "-" + fileName;//上传文件,指定上传路径和文件名item.write(new File(path,fileName));//删除临时文件item.delete();}}return "uploadSuccess";}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。