`
newleague
  • 浏览: 1504530 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

struts2文件上传的采用的三种方式解析

 
阅读更多

文件上传几乎是每个项目实现的一个必须的模块。
    上传就是将信息从个人计算机(本地计算机)传递到中央计算机(远程计算机)系统上,让网络上的人都能看到。将制作好的网页、文字、图片等发布到互联网上去,以便让其他人浏览、欣赏。这一过程称为上传。
    JAVA实现文件上传的几个组件:
    1 SmartUpload 用的最多的一个组件,已经不再更新了,可以实现上传和下载
    2 FileUpload Apache实现的文件上传组件,功能齐备
    3 J2KUpload java2000实现的文件上传组件,全部使用内存,适合多个不超过10M的小文件
    下面具体说说FileUpload Apache实现的文件上传组件。
    1、/** 按copy方式上传 */
    Java代码
    public String uploadFile(){
    /**保存的具体路径*/
    String savepath = getSavePath();
    /**根据保存的路径创建file对象*/
    File file = new File(savepath);
    if(!file.exists()){
    /**创建此文件对象路径*/
    file.mkdirs();
    }
    try {
    /**使用的是:org.apache.commons.io.FileUtils FileUtils*/
    FileUtils.copyFile(pic, new File(file,getPicFileName()));
    } catch (IOException e) {
    e.printStackTrace();
    }
    return SUCCESS;
    }
     备注:
    1、getSavePath()方法中,ServletActionContext()。getServletContext()。getRealPath
    (savePath+"\\"+getPicFileName()); ,这个主要是一个文件的实际路径
    2、我个人认为这种方式是简单易用的。按copy方式上传使用的是Apache公司的
    org.apache.commons.io.FileUtils包里的FileUtils.java.

 

2、/** 按字节方式上传 */
    Java代码
    public String uploadFile(){
    /** 文件的写操作 */
    FileInputStream fis = null;
    FileOutputStream fos = null;
    /** 保存的路径 */
    String savepath = getSavePath();
    /** 根据保存的路径创建file对象 */
    File file = new File(savepath);
    /** file对象是否存在
    */
    if (!file.exists()) {
    /** 创建此文件对象路径  */
    file.mkdirs();
    }
    try {
    /** 创建输入流 */
    fis = new FileInputStream(pic);
    /** 输出流 更据文件的路径+文件名称创建文件对象 */
    fos = new FileOutputStream(file + "//" + getPicFileName());
    /** 读取字节
    */
    byte b[] = new byte[1024];
    int n = 0;
    /** 读取操作
    */
    while ((n = fis.read(b)) != -1) {
    /** 写操作
    */
    fos.write(b, 0, n);
    }
    /** 关闭操作  */
    if (fis != null) {
    fis.close();
    }
    if (fos != null) {
    fos.close();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return SUCCESS;
    }
     3、/** 按字符方式上传 即“三层管道” */
    Java代码
    public String uploadFile(){
    /** 文件的写操作 */
    BufferedReader br =null;
    BufferedWriter bw = null;
    /** 保存的路径 */
    String savepath = getSavePath();
    /** 根据保存的路径创建file对象
    */
    File file = new File(savepath);
    /** file对象是否存在  */
    if (!file.exists()) {
    /** 创建此文件对象路径  */
    file.mkdirs();
    }
    try {
    /**
    创建一个BufferedReader  对象*/
    br = new BufferedReader(new InputStreamReader(new FileInputStream
    (pic)));
    bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream
    (file + "//" + getPicFileName())));
    // 读取字节
    char b[] = new char[1024];
    int n = 0;
    // 读取操作
    while ((n = br.read(b)) != -1) {
    // 写操作
    bw.write(b, 0, n);
    }
    // 关闭操作
    if (br != null) {
    br.close();
    }
    if (bw != null) {
    bw.close();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return SUCCESS;
    }
    备注:
    第二种上传方式没有第三种上传方式效率高。
    建议:
    最好用第一种方式上传,次之使用第三种方式上传,最后再使用第二种方式上传。

分享到:
评论

相关推荐

    struts2文件上传jar

    Struts2是一个流行的Java web框架,它为开发者提供了一种结构化的方式来构建MVC(Model-View-Controller)应用程序。在Struts2中,文件上传是常见的功能,用于允许用户在网页上上传文件到服务器。这个压缩包包含了...

    struts2文件上传的两种方法

    Struts2提供了两种主要的文件上传方式:单文件上传和多文件上传。下面将详细介绍这两种方法及其相关知识点。 一、单文件上传 1. **配置Struts2核心过滤器**:首先,需要在web.xml中配置`struts2-convention-plugin...

    struts2文件上传实例

    4. **文件解析**:Struts2支持两种方式处理文件上传:原生的Servlet API和Apache Commons FileUpload库。后者更为常用,因为它提供了更丰富的功能,如处理大文件分块上传、内存和磁盘存储策略等。在Action类中,你...

    Struts2多个文件上传

    Struts2本身并不包含一个内置的请求解析器来处理文件上传。相反,它依赖于第三方库,如Jakarta和Commons-FileUpload,来解析HTTP请求中的文件数据。Struts2对这些库进行了封装,使得文件上传的代码更加简洁,同时...

    struts2文件上传和下载

    4. **文件下载**: Struts2提供了一种简单的方式处理文件下载。在Action类中,你可以创建一个方法返回文件流。使用`response.setHeader()`设置HTTP响应头,如`Content-Disposition`来指定文件名,以及`Content-Type`...

    Struts2文件上传源码

    Struts2是一个流行的Java Web框架,它为开发者提供了一种优雅的方式来构建可维护、可扩展且结构清晰的Web应用程序。在Struts2中,文件上传是常见的功能之一,尤其是在处理用户提交表单时,比如上传图片、文档等。...

    struts2 文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户通过网页上传文件到服务器。Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,提供了丰富的特性和强大的控制层功能,使得文件上传...

    struts2文件上传

    Struts2 文件上传是Web开发中的一个重要功能,它允许用户从他们的本地计算机向服务器传输文件。在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将...

    Struts2之struts2文件上传详解案例struts011

    在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解Struts2中的Action类,它是处理用户请求的核心组件。为了支持文件上传,我们需要创建一个继承自`org....

    struts2文件上传例子.rar

    在处理文件上传时,Struts2会使用`Commons FileUpload`库,这个库提供了解析多部分HTTP请求的能力。每个上传的文件会被封装成`FileItem`对象,我们可以遍历这些对象,对每个文件进行处理。例如,将文件保存到服务器...

    JavaEE Struts文件上传

    2. **添加Struts2插件**:Struts2的文件上传功能依赖于`struts2-convention-plugin`和`struts2-core`等库。在`struts.xml`配置文件中,需要启用Multipart解析器,例如添加`<constant name="struts.multipart.parser...

    Struts2.0 文件上传与下载全解析

    本篇文章将全面解析Struts2.0中的文件上传和下载流程。 ### 文件上传 文件上传的核心在于`multipart/form-data`编码类型,这是HTML表单用于上传文件的必需属性。在示例中,我们看到一个简单的Struts2表单,其中...

    struts2+jquery+ajax文件异步上传

    在文件上传场景中,Struts2主要负责接收前端发送的文件数据,并将这些数据存储到服务器的指定位置。配置Struts2的Action类和相应的XML配置文件,可以定义文件上传的处理逻辑。 接着,jQuery是一个高效、简洁的...

    Struts2文件上传程序示例

    Struts2文件上传程序是一个典型的企业级Web应用开发中的功能,它允许用户通过网页将本地文件上传到服务器。Struts2作为一款强大的MVC(Model-View-Controller)框架,提供了丰富的功能支持,包括文件上传。这个示例...

    struts2 文件上传 测试通过版

    Struts2是一个强大的Java web应用程序框架,它提供了一种组织和构建MVC(模型-视图-控制器)架构的方式。在Struts2中,文件上传功能是常见的需求,特别是在处理用户提交表单时,比如上传图片、文档等。本文将详细...

    struts2文件上传与下载

    在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户在Web表单中提交的文件,如图片、文档等。下面将详细介绍Struts2中文件上传和下载的实现方法。 ### 1. 文件上传 #### 1.1 配置Struts2 首先,我们...

    struts2文件上传下载实例

    在“struts2文件上传下载实例”中,我们将探讨如何在Struts2框架下实现文件的上传和下载功能,这对于许多Web应用程序来说是必不可少的特性。 首先,`pom.xml`文件是Maven项目对象模型的配置文件,它定义了项目的...

    通过Servlet文件上传理解Struts2文件上传原理(附源码)

    Struts2框架利用了Servlet API,但提供了一种更抽象和灵活的方式来处理文件上传。它使用Interceptor(拦截器)机制,其中`FileUploadInterceptor`负责处理上传的文件。在Struts2配置中,你需要添加`params`和`...

    struts框架-文件上传下载

    2. Struts2中的文件上传:Struts2提供了更简洁的文件上传方式。在JSP页面中,可以使用`<s:file>`标签来创建文件选择控件。在Action类中,使用`@SkipValidation`注解标记文件上传方法,然后定义对应的`java.io.File`...

Global site tag (gtag.js) - Google Analytics