• 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";
        }

                

  • 相关阅读:
    【NXOpen.UF扩展】修改表达式
    NX二次开发 克隆
    C++手动加载CLR运行托管程序(CLR Hosting)
    C++/CLR 使用(VS2012,VS2013,VS2015)编写
    解决VS2015安装后stdio.h ucrtd.lib等文件无法识别问题,即include+lib环境变量配置
    NX 图标
    【错误分析】NX error status: 32
    NX CAM 读取加工参数
    CAM 模板样式表
    锁定NX原生界面 & 锁定界面更新
  • 原文地址:https://www.cnblogs.com/cqyp/p/12526820.html
Copyright © 2020-2023  润新知