springmvc 文件上传

本文详细介绍了三种SpringMVC文件上传方法:传统方式、SpringMVC内置方式及跨服务器上传。涵盖从依赖配置到具体实现步骤,帮助读者掌握不同场景下的文件上传技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


pox.xml
引入坐标依赖

	<dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>

1. 传统方式上传

 public String fileUpload1(HttpServletRequest request) throws Exception {
        //使用fileupload组件完成文件上传
        //上传位置
        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);
        //解析request
        List<FileItem> fileItems = upload.parseRequest(request);
        //遍历
        for (FileItem fileItem : fileItems) {
            //判断当前 item是否为上传文件项
            if (fileItem.isFormField()){
                //普通表单项
                System.out.println("普通表单");
            }else{
                System.out.println("上传文件项");
                //上传文件项
                String fileName = fileItem.getName();
                String uuid = UUID.randomUUID().toString().replace("-", "");
                fileName = uuid+fileName;
                System.out.println(fileName);
                fileItem.write(new File(path,fileName));
                //清理临时文件
                fileItem.delete();
            }
        }

        return "success";
    }

2. springmvc 上传

MultipartFile 的变量名要和前端name相同

 public String testFileUpload2(HttpServletRequest request, MultipartFile upload) throws IOException {
        System.out.println("springmvc上传.....");
        //上传位置
        String path = request.getSession().getServletContext().getRealPath("/uploads/");
        System.out.println(path);
        //判断文件夹是否存在
        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";
    }

xml

   <!--id只能叫mutiparResolver-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="323232"></property>
    </bean>

3.跨服务器上传文件

    @RequestMapping("/fileupload3")
    public String testFileUpload(MultipartFile upload) throws Exception {
        System.out.println("跨服务器springmvc上传.....");
        //图片服务器路径
        String path = "http://localhost:9090/UploadFile_war/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";
    }

如果出现405报错, 可能是另一个tomcat服务器没开文件接收
加上这个即可

    <init-param>
        <param-name>readonly</param-name>
        <param-value>false</param-value>
    </init-param>
内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值