`
wjm901215
  • 浏览: 154289 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java fileupload上传文件

    博客分类:
  • java
阅读更多

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  final long MAX_SIZE = 3 * 1024 * 1024;// 设置上传文件最大为 3M
  response.setContentType("text/html");
  // 设置字符编码为UTF-8, 这样支持汉字显示
  response.setCharacterEncoding("UTF-8");

  // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload
  DiskFileItemFactory dfif = new DiskFileItemFactory();
  dfif.setSizeThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘
  dfif.setRepository(new File(request.getRealPath("/")
    + "/WEB-INF/ImagesUploadTemp"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录

  // 用以上工厂实例化上传组件
  ServletFileUpload sfu = new ServletFileUpload(dfif);
  // 设置最大上传尺寸
  sfu.setSizeMax(MAX_SIZE);

  PrintWriter out = response.getWriter();
  // 从request得到 所有 上传域的列表
  List fileList = null;
  try {
   fileList = sfu.parseRequest(request);
  } catch (Exception e) {
   e.printStackTrace();
  }
  // 得到所有上传的文件
  Iterator fileItr = fileList.iterator();
  // 循环处理所有文件
  while (fileItr.hasNext()) {
   FileItem fileItem = null;
   String path = null;
   long size = 0;
   // 得到当前文件
   fileItem = (FileItem) fileItr.next();
   // 忽略简单form字段而不是上传域的文件域(<input type="text" />等)
   if (fileItem == null || fileItem.isFormField()) {
    continue;
   }
   // 得到文件的完整路径
   path = fileItem.getName();
   // 得到文件的大小
   size = fileItem.getSize();
   // 得到去除路径的文件名
   String t_name = path.substring(path.lastIndexOf("\\") + 1);
   // 得到文件的扩展名(无扩展名时将得到全名)
   String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1);
   long now = System.currentTimeMillis();
   // 根据系统时间生成上传后保存的文件名
   String prefix = String.valueOf(now);
   // 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下
   String u_name = request.getRealPath("/")+"/WEB-INF/upload/"
     + prefix + "." + t_ext;
   try {
    // 保存文件
    fileItem.write(new File(u_name));
    out.println("文件上传成功. 已保存为: " + prefix + "." + t_ext
      + " &nbsp;&nbsp;文件大小: " + size + "字节<p />");
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 }

分享到:
评论

相关推荐

    java实现的文件上传下载FileUpLoad

    Servlet 3.0及以上版本提供了处理Part的方法,如`Part.getName()`获取字段名,`Part.getSize()`获取大小,`Part.getSubmittedFileName()`获取上传文件的原始名称,以及`Part.write()`用于将Part内容写入到服务器指定...

    使用commons-fileupload上传文件

    【使用commons-fileupload上传文件】 Apache Commons FileUpload是Apache组织的一个子项目,专注于处理HTTP文件上传。这个组件提供了一个简洁的API,使得开发者能够轻松地在Java应用中处理由浏览器发送的多部分...

    java文件上传 FileUpload

    `DiskFileItemFactory`负责创建`FileItem`对象,这些对象封装了上传文件的信息。`ServletFileUpload`则用于解析请求并处理`FileItem`。 以下是使用Apache Commons FileUpload进行文件上传的基本步骤: 1. 引入依赖...

    使用fileupload组件实现文件上传功能

    使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...

    java中common-fileupload 上传文件demo

    // 设置最大上传文件大小,-1表示无限制 ``` 4. **解析请求**:使用`FileUpload`对象的`parseRequest()`方法解析请求,这将返回一个`FileItemIterator`,我们可以遍历这个迭代器获取每个上传的文件项。 ```java ...

    利用commons-fileupload上传组件上传文件(一)

    在Web开发中,允许用户上传文件是常见的需求,例如提交简历、上传图片或者分享文档。HTTP协议本身并不支持文件上传,但是通过MIME多部分/相关格式,我们可以将文件内容作为POST请求的一部分发送。Apache Commons ...

    基于apache commons.fileupload的文件上传组件,改进了上传速度

    apache commons.fileupload上传组件在上传文件时,在调用parseRequest方法时,先将输入流上传到服务器临时目录,在之后的文件处理过程中,再将临时目录下保存的文件复制到指定的目录,多了一道转储步骤。本实现抽取...

    fileupload文件上传下载代码示例

    这些文件可以是实际应用中的组成部分,例如,`jsp`文件可能是前端的文件上传表单,`FileUpload`相关的Java类文件则是处理上传逻辑的后端代码。 综上所述,"fileupload文件上传下载代码示例"是一个关于使用Java进行...

    commons-fileupload实现文件上传

    可以通过`ServletFileUpload`设置最大上传文件大小和整个请求的总大小,以防止大文件上传导致服务器资源耗尽。 ```java upload.setSizeMax(maxFileSize); // 单个文件大小限制 upload.setFileSizeMax...

    Java高性能文件上传及下载

    在Java开发中,实现高性能的文件上传和下载是至关重要的技术环节,特别是在处理大量用户交互或者大数据量传输的场景下。本资料集主要探讨如何利用Java技术和相关工具库来优化这一过程,确保系统的稳定性和效率。 ...

    commons-fileupload 文件上传 图片上传 demo

    至于文件列表中提到的"Roger",这可能是实际的项目文件或代码示例,具体内容没有给出,但根据标题“demo”可以推测,这可能是一个演示如何使用`commons-fileupload`进行图片上传的Java代码示例。 在实际应用中,...

    commons-fileupload文件上传实例

    该库提供了解析请求、存储上传文件和处理异常的能力。 **二、基本原理** 文件上传涉及到客户端和服务器之间的交互。用户通过HTML表单选择文件后,浏览器将文件封装成多部分数据,发送到服务器。FileUpload库负责...

    文件上传下载源代码,FileUpload上传文件

    `FileUpload`通常指的是一个用于处理用户通过Web表单上传文件的组件或技术。本篇将详细讲解这一主题,包括文件上传的基本原理、使用FileUpload进行文件上传的步骤以及相关注意事项。 一、文件上传的基本原理 文件...

    java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传)

    java 文件上传(包括struts2文件上传,smartupload,基于apatch 的fileupload的文件上传):该文件包括文件上传的多个实例:有基于strtus2自带的文件上传实例、smartupload文件实例 和基于aptche自带的fileupload 的...

    利用org.apache.commons.fileupload上传多个文件

    Apache Commons FileUpload 是一个用于处理 HTTP 请求中多部分(multipart)数据的 Java 库,尤其适合上传文件。在本文中,我们将深入探讨如何利用该库实现多个文件的上传功能。 一、准备工作 在使用 Apache ...

    设置FileUpload上传文件大小

    `FileUpload`是处理用户通过表单上传文件的关键组件。为了确保服务器稳定运行和资源管理,我们需要限制上传文件的大小,防止大文件耗尽服务器资源或导致内存溢出。本文将详细讲解如何在不同框架和环境中设置`...

    fileUpload文件上传组件例子

    本示例中的"fileUpload文件上传组件例子"提供了一个自定义实现的文件上传组件,旨在帮助开发者理解并掌握这一关键功能的实现方式。 首先,我们需要了解文件上传的基本原理。在HTML中,`&lt;input type="file"&gt;`标签...

    commons-fileupload文件上传实例代码

    - 上传文件时,应检查文件类型和大小,防止恶意文件上传。 - 文件名处理时,避免使用用户提供的原始文件名,以防路径遍历攻击。可以生成随机文件名或重命名文件。 - 使用临时目录存储上传的文件,直到准备好处理...

    java上传文件jar

    标题提到的"java上传文件jar"实际上指的是两个关键的Java库,它们是Apache Commons IO和Apache Commons FileUpload。这两个库提供了强大的文件操作和文件上传功能,是Java开发者处理文件上传问题的得力助手。 首先...

    使用Common-fileUpload 上传文件 读取文件内容

    本篇文章将详细讲解如何使用`Commons-FileUpload`进行文件上传,并读取上传文件的内容。 首先,了解`Commons-FileUpload`的工作原理。它解析HTTP请求,将多部分的数据分割成单独的部分,这些部分可以是文本或文件。...

Global site tag (gtag.js) - Google Analytics