JSP使用Common FileUpload组件实现文件上传及限制上传类型实例代码

发布时间 - 2026-01-11 03:05:13    点击率:

1、将commons-fileupload-1.3.3.jar复制到Web应用的lib文件夹下,在WebRoot目录下创建limit.jsp页面,在该页面中添加一个文件域的表单,设置类型为    multipart/form-data。代码如下:

<body>
  <h2>上传图书课件</h2>
  <form action="LimitFile" name="one" enctype="multipart/form-data" method="post">
    选择一个rar文件:
    <input type="file" name="fileupload" value="upload" /> 
    <input type="submit" value="上传"> <input type="reset" value="取消">
  </form>
 </body> 

  上述代码指定提交后将请求提交给LimitFile处理,LimitFile(Servlet)用来处理上传文件及判断文件类型是否匹配,显示上传结果。

2、创建名为LimitFile的Servlet,并在doPost()方法中编写实现代码,如下所示:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String uploadpath = "";
    DiskFileItemFactory factory = new DiskFileItemFactory();
    //设置是否使用临时文件保存解析出来的数据的那个临界值,该方法传入参数的单位是字节。
    factory.setSizeThreshold(30 * 1024);
    //用于设置setSizeThreshold()方法中提到的临时文件的存放目录,这里要求使用绝对路径。
    factory.setRepository(factory.getRepository());
    ServletFileUpload upload = new ServletFileUpload(factory);
    List list = null;
    try{
      list = upload.parseRequest(request);
      String[] limit = new String[]{".jpg", ".gif", ".png", ".bmp"};
      //定义限制的文件类型
      SuffixFileFilter filter = new SuffixFileFilter(limit);
      //获取SuffixFileFilter实例
      Iterator iterator = list.iterator();
      while(iterator.hasNext()){
        FileItem item =(FileItem)iterator.next();
        if(!item.isFormField()){
          String filePath = item.getName();
          if(filePath != null){
            File filename= new File(filePath);
            File uploadFile = new File(request.getSession().getServletContext().getRealPath("/") + "upload");
            uploadpath = uploadFile.getAbsolutePath()+File.pathSeparator + uploadpath;
            //因为路径后面多了个";"号,所以要去掉
            uploadpath = uploadpath.substring(0, uploadpath.length()-1);
            File saveFile = new File(uploadpath,filename.getName());
            boolean flag = filter.accept(saveFile);
            if(flag){
              out.print("禁止上传传图片文件");
              break;
            }else{
              try {
                item.write(saveFile);
                out.print("文件上传成功");
              } catch (Exception e) {
                out.print("文件上传失败了");
                e.printStackTrace();
              }
            }
          }
        }
      }
    }catch(FileUploadException e){
      e.printStackTrace();
    }
  }

上述代码在字节串数组limit中定义了不允许上传的文件类型,然后将该数组传递给SuffixFileFilter类的构造函数。在通过该类的accept()方法验证当前上传的文件是否符合条件。最后将文件保存到项目的upload目录下。

总结

以上所述是小编给大家介绍的JSP使用Common FileUpload组件实现文件上传及限制上传类型实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


# jsp  # Common  # FileUpload  # 文件上传  # javascript实现限制上传文件大小  # 客户端js判断文件类型和文件大小即限制上传大小  # javascript验证上传文件的类型限制必须为某些格式  # JavaScript 上传文件限制参数案例详解  # 上传  # 后将  # 小编  # 临时文件  # 临界值  # 目录下  # 并在  # 要去  # 给大家  # 所示  # 表单  # 所述  # 将该  # 给我留言  # 是否符合  # 上传文件  # 有任何  # 失败了 


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


相关推荐: 如何在阿里云ECS服务器部署织梦CMS网站?  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  重庆市网站制作公司,重庆招聘网站哪个好?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Python函数文档自动校验_规范解析【教程】  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  EditPlus 正则表达式 实战(3)  详解Huffman编码算法之Java实现  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  详解Android图表 MPAndroidChart折线图  Laravel怎么连接多个数据库_Laravel多数据库连接配置  详解vue.js组件化开发实践  网站页面设计需要考虑到这些问题  怎么用AI帮你为初创公司进行市场定位分析?  如何在IIS中新建站点并配置端口与物理路径?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  如何用花生壳三步快速搭建专属网站?  Laravel如何自定义错误页面(404, 500)?(代码示例)  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何在景安服务器上快速搭建个人网站?  Python并发异常传播_错误处理解析【教程】  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何在万网ECS上快速搭建专属网站?  如何获取PHP WAP自助建站系统源码?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何在腾讯云服务器快速搭建个人网站?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Laravel怎么为数据库表字段添加索引以优化查询  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  如何解决hover在ie6中的兼容性问题  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  北京企业网站设计制作公司,北京铁路集团官方网站?  网站制作软件有哪些,制图软件有哪些?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  JavaScript如何实现倒计时_时间函数如何精确控制  JavaScript中的标签模板是什么_它如何扩展字符串功能  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Android okhttputils现在进度显示实例代码  微信小程序 wx.uploadFile无法上传解决办法  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  如何快速搭建高效服务器建站系统?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  怎么用AI帮你设计一套个性化的手机App图标?