zoukankan      html  css  js  c++  java
  • SpringMVC的文件上传

    一、SpringMVC实现文件上传

        文件上传源码想下载的:https://github.com/Cqypyglz/SpringMVCFileUpload

           1.文件上传的前提

               1) form 表单的 enctype 取值必须是:multipart/form-data 

               2)method 属性取值必须是 Post

               3)提供一个文件选择域<input type=”file” /> 

            注意:当 form 表单的 enctype 取值不是默认值后,request.getParameter()将失效。 

            2.实现步骤

               1)SpringMVC框架提供了MultipartFile对象,该对象表示上传的文件,要求变量名称必须和表单file标签的 name属性名称相同。 

               2)配置文件解析器

               

     <!--配置文件解析器-->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
         <property name="maxUploadSize" value="1000000"></property>
        </bean>

               3)Controller中的代码如下:

                  

      @RequestMapping("/fileUpload2")
        public String fileUpload2(HttpServletRequest request, MultipartFile upload) throws Exception {
            System.out.println("文件上传");
            //使用fileupload组件完成上传文件
            //上传的位置
            String path = request.getSession().getServletContext().getRealPath("upload/");
            //判断,该路径是否存在
            File file =new File(path);
            if(!file.exists()){
                file.mkdirs();
            }
            //上传文件项
            //获取上传文件的名称
            String filename = upload.getOriginalFilename();
            //把文件名称设置唯一值
            String uuid = UUID.randomUUID().toString().replace("-", "");
            filename=uuid+"-"+filename;
            //完成上传文件
            upload.transferTo(new File(path,filename));
             return "success";
        }

    二、 SpringMVC跨服务器方式文件上传 

              1.导入依赖 

    <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-core</artifactId>
          <version>1.18.1</version>
        </dependency>
        <dependency>
          <groupId>com.sun.jersey</groupId>
          <artifactId>jersey-client</artifactId>
          <version>1.18.1</version>
        </dependency>

             2.Controller的代码实现

                 

     @RequestMapping("/fileUpload3")
        public String fileUpload3(MultipartFile upload) throws Exception {
            System.out.println("跨服务器文件上传");
            //定义上传文件服务器路径
            String path="http://localhost:9090/uploads/";
            //上传文件项
            //获取上传文件的名称
            String filename = upload.getOriginalFilename();
            //把文件名称设置唯一值
            String uuid = UUID.randomUUID().toString().replace("-", "");
            filename=uuid+"-"+filename;
            //完成跨服务器上传文件
            //创建客户端对象
            Client client = Client.create();
            //和图片服务器进行连接
            WebResource webResource = client.resource(path + filename);
            //上传文件
            webResource.put(upload.getBytes());
    
            return "success";
        }

                

  • 相关阅读:
    hql语句
    eclipse部署jrebel热启动后报错java.lang.OutOfMemoryError: PermGen space问题
    jQuery冒泡事件
    oracle中使用序列生成编号
    月份-日期下拉框联动变换日期
    xml运用1
    Oracle 数据库 ORA-01034
    Spring中IOC&AOP
    使用可视化图表对 Webpack 2 的编译与打包进行统计分析
    数据驱动
  • 原文地址:https://www.cnblogs.com/cqyp/p/12526820.html
Copyright © 2011-2022 走看看