Java进阶之FileUpload完成上传的实例

发布时间 - 2026-01-11 03:23:16    点击率:

 Java进阶之FileUpload完成上传的实例

   FileUpload是Apache commons下面的一个子项目,用来实现Java项目下的文件上传功能,常见的文件上传还有SmartUpload,Servlet3.0,Struts2。

     在这里我用的是commons- fileupload-1.2.1,下面就是一个简单实例,解析过程都写到代码中的注释上了,注释很详细

//创建磁盘文件项工厂 
      DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory(); 
      //设置缓冲区的大小,如果文件的大小超过了缓冲区的大小,就会产生临时文件 
      diskFileItemFactory.setSizeThreshold(1024*1024*3); 
      //获得核心解析类 
      ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory); 
      //解决中文文件名上传乱码 
      fileUpload.setHeaderEncoding("UTF-8"); 
      //解析request,返回list集合 
      List<FileItem> list = fileUpload.parseRequest(request); 
      //获得每个部分,将遍历的值存入到一个map集合中 
      Map<String, String> map=new HashMap<>(); 
      //设置上传文件的文件名 
      String fileName=null; 
      for (FileItem fileItem : list) { 
        //判断普通项和文件上传项 
        if (fileItem.isFormField()) { 
          //普通项 
          String name=fileItem.getFieldName(); 
          String value=fileItem.getString("UTF-8"); 
          map.put(name, value); 
        }else { 
          //文件上传项 
          //获得文件名 
          fileName=fileItem.getName(); 
          //获得文件的输入流 
          InputStream is=fileItem.getInputStream(); 
          //获得文件上传的路径 
          String path=this.getServletContext().getRealPath("/products/1"); 
          OutputStream os=new FileOutputStream(path+"/"+fileName); 
          int len=0; 
          byte[] b=new byte[1024]; 
           
          while ((len=is.read(b))!=-1) { 
            os.write(b, 0, len); 
          } 
          is.close(); 
          os.close(); 
        } 

     组件FileUpload使用FileItemFactory工厂创建新的文件项目。这个给了组件FileUpload很大的灵活性。这个工厂拥有怎样创建项目的最终控制权。工厂执行过程中上传项目文件的临时数据可以存储在内存中或硬盘上。这个依赖于上传项目的大小(即:数据的字节)。不过这种行为可以在你的应用程序中适当的自定制。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Java  # FileUpload上传  # Java进阶之FileUpload的实例  # FileUpload  # Java中使用fileupload组件实现文件上传功能的实例代码  # java使用common-fileupload实现文件上传  # java组件commons-fileupload实现文件上传、下载、在线打开  # Java组件commons fileupload实现文件上传功能  # JavaEE组件commons-fileupload实现文件上传、下载  # java组件commons-fileupload文件上传示例  # java组件fileupload文件上传demo  # java组件commons-fileupload实现文件上传  # Java组件FileUpload上传文件实现代码  # JAVA使用commos-fileupload实现文件上传与下载实例解析  # 文件上传  # 上传  # 的是  # 进阶  # 就会  # 在这里  # 上了  # 如有  # 遍历  # 我用  # 给了  # 希望能  # 写到  # 谢谢大家  # 过程中  # 应用程序  # 上传文件  # 中或  # 临时文件  # 疑问请 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Python文本处理实践_日志清洗解析【指导】  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  网站制作免费,什么网站能看正片电影?  如何在不使用负向后查找的情况下匹配特定条件前的换行符  如何在企业微信快速生成手机电脑官网?  如何用好域名打造高点击率的自主建站?  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  jQuery中的100个技巧汇总  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何在香港服务器上快速搭建免备案网站?  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  教学论文网站制作软件有哪些,写论文用什么软件 ?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何在IIS中配置站点IP、端口及主机头?  详解vue.js组件化开发实践  如何基于云服务器快速搭建个人网站?  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  C++时间戳转换成日期时间的步骤和示例代码  Swift中swift中的switch 语句  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  怎样使用JSON进行数据交换_它有什么限制  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Bootstrap整体框架之CSS12栅格系统  如何在Windows环境下新建FTP站点并设置权限?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  PHP正则匹配日期和时间(时间戳转换)的实例代码  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  公司门户网站制作流程,华为官网怎么做?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  canvas 画布在主流浏览器中的尺寸限制详细介绍  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  使用C语言编写圣诞表白程序  iOS中将个别页面强制横屏其他页面竖屏  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  nginx修改上传文件大小限制的方法  北京企业网站设计制作公司,北京铁路集团官方网站?  如何正确选择百度移动适配建站域名?  如何在橙子建站上传落地页?操作指南详解  如何用PHP工具快速搭建高效网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  新三国志曹操传主线渭水交兵攻略