文件上传

文件上传

文件上传的表单需满足以下三个条件。

  • method属性设置为post。
  • enctype属性设置为"multipart/form-data"
  • 提供 文件上传输入框。

上传步骤

1.导入相关的包

<dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
</dependency>
<dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.8.0</version>
</dependency>

2.配置applicationContext.xml

<!--    文件上传配置-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
      <!-- 请求编码格式 -->
        <property name="defaultEncoding" value="utf-8"/>
      <!--上传文件大小上限 ,单位为字节(10485760相当于10Mb)-->
        <property name="maxUploadSize" value="10485760"/>
     </bean>

3.文件上传页面

<form action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data" method="post">
<%--        加上multiple 可以进行多文件上传 --%>
         <input type="file" name="file" id="file" multiple="multiple">
         <input type="submit" value="upload">
</form>

4.Controller层

@RequestMapping("/upload")
public String upLoad(@RequestParam("file") List<MultipartFile> file, HttpServletRequest request) throws IOException {
        //判断文件是否存在
        if (!file.isEmpty() && file.size()>0){
            for (MultipartFile file1 : file) {
                //获取上传文件的原始名字
                String filename = file1.getOriginalFilename();
                //设置上传文件的保存地址目录
                String dirpath = request.getSession().getServletContext().getRealPath("/upload/");
                File filePath = new File(dirpath);
                //如果保存地址的文件不存在,就先创建目录
                if (!filePath.exists()){
                    filePath.mkdirs();
                }
                String name=UUID.randomUUID()+"_"+filename;
                //使用MultpartFile接口的方法完成文件上传到指定位置
                file1.transferTo(new File(dirpath+name));
            }
            return "show";
        }
         else
             return "error";
    }

5.文件上传存储的位置

  • 在文件夹中找到对应的位置即可。

文件上传

上一篇:Gluster vs Ceph:开源存储领域的正面较量


下一篇:软件架构(期末复习题)