使用FileUpload实现文件的上传

public void fileUpLoad(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // 使用FileUpload实现文件的上传
  // 判断请求是否是文件上传的表单
  boolean multipartContent = ServletFileUpload.isMultipartContent(request);
  if (!multipartContent) {// 如果不是文件上传的表单,直接结束
   return;
  }
  // 处理
  // 创建磁盘工厂
  DiskFileItemFactory factory = new DiskFileItemFactory();
  // 设置临时文件夹的路径
  // factory.setRepository(new File("/temp"));//设置临时文件夹的路径
  // 创建处理工具
  ServletFileUpload fileUpload = new ServletFileUpload(factory);
  // 设置一些参数
  fileUpload.setSizeMax(1024000);// 设置一次上传的文件的总大小
  fileUpload.setFileSizeMax(102400);// 设置单个文件的最大大小
  try {
   // 解析request  解析之后返回一个List。  FileIte表示表单域中的每一个域
   List itemList = fileUpload.parseRequest(request);
   // 遍历:
   for (FileItem item : itemList) {
    if (item.isFormField()) {// 是否是表单的普通域
     // 从item中取出对应的数据
     // 普通域的name属性
     String fieldName = item.getFieldName();
     // 普通域的value
     String value = item.getString();
     System.out.println(fieldName + “:” + value);
    } else { // 文件域
     // 读取上传的文件的名称
     String fileName = item.getName();
     System.out.println(“文件的名称:” + fileName);
     // 取出文件后缀
     String ext = fileName.substring(fileName.lastIndexOf("."));
     // 将文件写到目标文件中
     // 生成文件名
     String fname = System.currentTimeMillis() + “_” + (new Random().nextInt(90) + 10) + ext;
     // 创建目标文件
     String targetFilePath = this.getServletContext().getRealPath("/uploadfile/" + fname);
     // 将文件写入目标文件
     try {
      item.write(new File(targetFilePath));// 将临时文件拷贝到目标文件
     } catch (Exception e) {
      e.printStackTrace();
     }
    }
   }
  } catch (FileUploadException e) {
   e.printStackTrace();
  }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值