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

struts2文件上传下载

 
阅读更多
Struts2文件上传下载
文件上传

/**
*
*/
package com.zdvictory.taurus.filesupload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.*;
import com.zdvictory.taurus.common.util.*;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper;

/** *
*/
public class UploadFileHandler {

private static int BUFFER_SIZE = 8192;

/**
  * 上传附件操作 传递参数:系统参数配置设置的参数名称
  */
@SuppressWarnings("unchecked")
public static List<Attachment> upload(String sysParaName) throws Exception {
  // 文件保存路径
  String path = SysParaFinder.getSysParaValue(sysParaName);
  List<Attachment> list = new ArrayList<Attachment>();
  MultiPartRequestWrapper request = (MultiPartRequestWrapper) ServletActionContext
    .getRequest();
  Enumeration enu = request.getFileParameterNames();
  while (enu.hasMoreElements()) { // 对每一个文件域进行遍历
   String controlName = (String) enu.nextElement();
   String[] fileNames = request.getFileNames(controlName);
   File[] uploadFiles = request.getFiles(controlName);
   for (int i = 0; i < uploadFiles.length; i++) {
    File uploadFile = uploadFiles[i];
    if (!uploadFile.exists())
     continue;
    // 如果文件夹不存在,创建文件夹,将文件保存到目录
    File dir = new File(request.getRealPath("/") + path);
    if (!dir.exists())
     dir.mkdirs();
    String ext = fileNames[i].substring(fileNames[i].indexOf("."),
      fileNames[i].length());// 获取文件扩展名
    String filename = UUID.randomUUID().toString() + ext;
    File file = new File(request.getRealPath("/") + path + filename);
    byte[] data = new byte[BUFFER_SIZE];
    int byteRead = -1;
    FileInputStream in = new FileInputStream(uploadFile);
    FileOutputStream out = new FileOutputStream(file);
    while ((byteRead = in.read(data)) != -1) {
     out.write(data, 0, byteRead);
     out.flush();
    }
    out.close();
    in.close();
    // 设置附件对象属性
    Attachment attach = new Attachment();
    attach.setFilename(fileNames[i]);
    attach.setContentType(ext);
    attach.setFilepathname(path + filename);
    attach.setFilesize(uploadFile.length());
    list.add(attach);
   }
  }
  return list;
}
}
文件下载

public String download() throws Exception {
  redheadTemplate = redheadTemplateManager.findById(Long
    .valueOf(getId()[0]));
  String name = redheadTemplate.getName()
    + redheadTemplate.getFilepathname().substring(
      redheadTemplate.getFilepathname().lastIndexOf("."),
      redheadTemplate.getFilepathname().length());
  this.setFilename(new String(name.getBytes(), "ISO8859-1"));
  this.setFilepathname(redheadTemplate.getFilepathname());
  return "download";
}
文件下载配置文件


   <result name="download" type="stream">
    <!-- 下载文件类型 -->
    <param name="contentType">
     application/octet-stream
    </param>
    <!-- 默认为 inline(在线打开),设置为 attachment 将会告诉浏览器下载该文件,filename 指定下载文         
     件保存时的文件名,若未指定将会是以浏览的页面名作为文件名,如以 download.action 作为文件名,
     这里使用的是动态文件名,${filename}, 它将通过 Action 的 getFilename() 获得文件名 -->
    <param name="contentDisposition">
     attachment;filename="${filename}"
    </param>
    <!-- 下载的InputStream流,Struts2自动对应Action中的getDownloadFile方法,该方法必须返回InputStream类型 -->
    <param name="inputName">downloadFile</param>
    <!-- 输出时缓冲区的大小 -->
    <param name="bufferSize">8192</param>
   </result>
 
分享到:
评论

相关推荐

    struts2文件上传下载源代码

    在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...

    struts2文件上传下载实例

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

    Struts2文件上传下载和表单重复提交问题

    综上所述,Struts2文件上传下载和表单重复提交涉及多个技术点,包括Struts2的配置、文件操作、HTTP响应头设置、安全性和异常处理。理解并熟练掌握这些知识点,对于构建健壮的Web应用程序至关重要。

    struts2文件上传下载(注解版)

    在本项目中,我们关注的是Struts2中的文件上传和下载功能,这些功能是Web开发中常见的需求,尤其在处理用户数据提交或提供资源下载时。下面将详细介绍这个“struts2文件上传下载(注解版)”项目的关键知识点。 1. ...

    struts2实现文件上传下载

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。

    struts2 文件上传下载

    在Struts2中,文件上传和下载是常见的功能,它们允许用户从服务器上下载文件或向服务器上传文件。理解并掌握这一部分的知识对于开发交互性强的Web应用至关重要。 ### 一、文件上传 1. **使用Struts2的FileUpload...

    Struts2文件上传下载

    在Struts2中,文件上传和下载是常见的功能,它们使得用户能够交互地处理文件,如上传图片、文档或者下载资源。下面我们将深入探讨如何利用Struts2实现文件上传和下载。 一、文件上传 1. 配置Struts2核心拦截器:...

    第八章:struts2文件上传下载.ppt

    第八章:struts2文件上传下载.ppt

    Struts2文件上传下载 中文乱码

    在Struts2框架中,文件上传和下载是常见的功能需求,但处理中文文件名或内容时,可能会遇到中文乱码的问题。这个问题主要涉及到字符编码的处理,包括HTTP请求的编码、文件名的编码以及文件内容的编码。接下来,我们...

    struts2文件上传与下载

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

    Struts2文件上传与下载

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括处理用户表单提交、进行文件上传和下载。在Web应用中,文件上传和下载是常见的需求,例如用户上传头像、下载文档等。Struts2通过其Action类和...

    struts2 文件上传

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

Global site tag (gtag.js) - Google Analytics