首页 > 其他分享 >idea使用commons-fileupload上传文件

idea使用commons-fileupload上传文件

时间:2022-11-18 16:37:47浏览次数:76  
标签:idea web fileupload 文件 commons upload path fi 上传

文件上传使用的工具:https://commons.apache.org/proper/commons-fileupload/faq.html
文件上传的前提条件:

  • form表单method="post"
  • form表单enctype="multipart/form-data"
  • form表单持有file类型input进行文件选择(二进制数据)

上传案例:

//        1、初始化FileUpload组件
        FileItemFactory factory = new DiskFileItemFactory();
        /**
         * FileItemFactory 用于将前端表单的数据转换为一个个FileItem对象
         * ServletFileUpload 则是为FileUpload组件提供Java Web的Http请求解析
         */
        ServletFileUpload sf = new ServletFileUpload(factory);
//        2、遍历所有FileItem
        try {
            List<FileItem> formData = sf.parseRequest(request);
            for (FileItem fi : formData){
                if (fi.isFormField()){
                    System.out.println("普通输入项:" + fi.getFieldName() + ":" + fi.getString("UTF-8"));
                }else {
                    System.out.println("文件上传项:" + fi.getFieldName());
//                    3、文件保存到服务器目录
                    //获得文件上传的绝对路径
                    String path = request.getServletContext().getRealPath("/upload");       
//                    String path = "D:\\Imooc\\week13-14\\mgallery\\web\\upload";//现在只能想到写死,呃
                    System.out.println("上传文件目录:" + path);
                    String fileName = UUID.randomUUID().toString();
//                    fi.getName()得到原始文件名,截取最后一个.后所有字符串,例如:wxml.jpg--> .jpg
                    String suffix = fi.getName().substring(fi.getName().lastIndexOf("."));
//                    fi.write()写入目标文件
                    fi.write(new File(path,fileName+suffix));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

使用idea开发,我web有一个upload文件夹,想把图片上传到web下面的upload下,即 D:\Imooc\week13-14\mgallery\web\upload,但是每次上传的地址都是 D:\Imooc\week13-14\mgallery\out\artifacts\mgallery_war_exploded\upload。就是war包下面编译文件中的upload。

解决方法:

把上面的OutPut directory 地址改为web就好了,如下:

真实的上传路径地址就是web下的upload了。

如果你的实在弄不好,又着急的话,那就先写死吧。不过,我相信问题总会解决的,加油啊!

标签:idea,web,fileupload,文件,commons,upload,path,fi,上传
From: https://www.cnblogs.com/LittleKevin/p/16903502.html

相关文章

  • SpringBoot使用ServletFileUpload上传文件时servletFileUpload.parseRequest(request)
    1.问题描述1.1SpringBoot使用ServletFileUpload上传文件时List<FileItem>items=servletFileUpload.parseRequest(request)为空//获取ServletFileUploadServletF......
  • IDEA中使用 SVN 操作详解
    目录IDEA配置SVN拉取代码IDEA+SVN将文件回退到历史版本IDEA更新SVN代码解决冲突IDEA+SVN与资源库同步IDEA为SVN打分支或标签IDEA忽略提交文件到SVN......
  • 如何用idea新建一个Spring web项目
    如何用idea新建一个Springweb项目首先要下好maven,tomcat,idea,jdk等开发工具一、新建一个工程1、打开idea,选择File->New->project2、选择一个空项目,点击next,给项......
  • idea 设置vue@跳转
    第一步:根目录下面,创建一个JS文件,名字随便起config.js/*此文件未使用,只是为了让idea可以识别实际位置*/constpath=require('path');functionresolve(dir){returnpa......
  • 修改IDEA默认生成目录,解决C盘空间不足问题。
    问题:解决:1.打开文件路径,找到这个文件。2.用编辑器打开。去掉四个箭头所指向语句的注释,给其前两个添加你的新路径。3.重启IDEA。导入配置文件。(我好像导入失败了,但是路......
  • 解决Idea启动项目报错Configuration Error: deployment source ' :war exploded' is n
    1、首先进入到IDEA导航条中File选项的projectStructure中    2、进入之后按照如下图方式,打开到选择你要导入的项目   3、进入之后他就会提示,让你把这个......
  • IDEA打包项目方式
    IEDA打包项目发布:点击AntBuild,然后点击左侧绿色+号;在弹框中选择需要打包的项目路径下的build.xml,点击OK即可;可以在打包之前配置打包的版本号和后缀。......
  • idea插件-plantUml用法一-----类图
    一、idea安装plantUml依次操作:file---setting---plugins----PlantUMLintegration----restartIdea二、创建类图依次操作:file---new---plantUml选择创建类图创建......
  • node-v18.11.0-x64.msi安装npm时卡在sill idealTree buildDeps
    造成上述问题的原因是因为node的默认安装环境在国外,因此我们只需要修改下镜像的地址即可npmconfigsetregistryhttps://registry.npm.taobao.org查看是否安装成功:......
  • idea中git的相关操作(忽略文件、push,pull,commit)
    一、忽略文件不起作用的问题1、原因忽略文件只跟踪未track状态的文件,所以只需要把本地缓存删除了,再提交。(idea要安装.ignore插件)2、解决办法以下命令需要在当前项目文......