`

struts upload download

阅读更多
1.action:
public String fileUpload()throws Exception{
    FileOutputStream out=null;
    //String cDate = DateUtils.convertDateString(new Date(), "yyyyMMdd");
        String path = ServletActionContext.getServletContext().getRealPath("/WEB-INF/upload/");
        String filename = path+File.separator+uploadFileName;
        System.out.println(upload.getAbsolutePath()+"  "+upload.getName());
        String filename2 = path+File.separator;
        FileInputStream in = new FileInputStream(upload);
        File f=new File(filename2);
        if(!f.exists()){
        f.mkdirs();
        out= new FileOutputStream(new File(filename));
        }
        else{
        out= new FileOutputStream(new File(filename));
        }
        byte[]b = new byte[1024]; 
        int len = 0; 
        while((len=in.read(b))>0){ 
            out.write(b,0,len); 
        } 
        out.close();//关闭流;
        in.close();
        return SUCCESS; 
    } 



public void print_file(String dir) {
File file = new File(dir);
File files[] = file.listFiles();
for (File tempFile : files) {
if (tempFile.isDirectory()) {
  
print_file(tempFile.getAbsolutePath());
} else {
fileCount++;
filenameList.add(tempFile.getAbsolutePath().substring(tempFile.getAbsolutePath().lastIndexOf("\\")+1,
tempFile.getAbsolutePath().length()));
}
}

}


public String downloadFile(){
    inputStream = ServletActionContext.getServletContext().getResourceAsStream("/WEB-INF/upload/" + fileName);
     
      return SUCCESS;
   
    }

2
<actionname="downloadFile"class="XXX.XXX" method="downloadFile">
          <result name="success" type="stream">
                 <param name="contentType">application/octet-stream</param><!-- inline 为打开方式 -->
                 <param name="contentDisposition">attachment;filename="${fileName}"</param>   
                 <param name="inputName">inputStream</param>     
                 <param name="bufferSize">2048</param>
             </result>
        </action>

contentType
内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片

inputName
下载文件的来源流,对应着action类中某个类型为Inputstream的属性名,例如取值为inputStream的属性需要编写getInputStream()方法

contentDisposition
文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。取值为:

attachment;filename="struts2.txt",表示文件下载的时候保存的名字应为struts2.txt。如果直接写filename="struts2.txt",那么默认情况是代表inline,浏览器会尝试自动打开它,等价于这样的写法:inline; filename="struts2.txt"



3
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP '1.jsp' starting page</title>
</head>

<body>
<s:form action="fileUpload" method="post" enctype="multipart/form-data">
<s:file name="upload" label="上传"></s:file>
<s:submit value="上传"></s:submit>
</s:form>
</body>
</html>

4
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<h3>下载文件</h3>
<table align="center" border="0">
<tr>
<td width="10%">序号</td>
<td width="20%">文件类型</td>
<td width="60%">文件名</td>
<td width="10%">下载</td>
</tr>
<tr>
<s:iterator status="status" value="filenameList" var="f">
<tr>
    <td><s:property value="#status.index+1" /></td>
   
     <td><img src="${pageContext.request.contextPath}/WEB-INF/upload/<s:property value="#f"/>" width="47" height="19" border="0" ></img></td>
   
<td><s:property value="#f" /></td>

<td><a href="${pageContext.request.contextPath}/downloadFile.action?fileName=<s:property value="#f" />">download</a></td>
</tr>
</s:iterator>
</table>
<hr>
<s:debug></s:debug>
</body>
</html>
  • 大小: 54.3 KB
分享到:
评论

相关推荐

    upload download source

    1. 配置Struts的Upload插件:在struts-config.xml文件中,需要配置.struts.action.upload.MaxSize和.struts.action.upload.SizeThreshold属性,以限制上传文件的大小。 2. 创建表单:在HTML页面上,使用`...

    Struts+Spring+Hibernate_upload_and_download.rar_Spring+Hibernate

    在“Struts+Spring+Hibernate_upload_and_download.rar_Spring+Hibernate”这个压缩包中,我们主要关注的是这三大框架在文件上传下载功能上的实现。 Struts 是一个基于MVC(Model-View-Controller)设计模式的Web...

    struts2+extjs中File的upload&download;&delete;例子及说明

    ### Struts2与ExtJS集成实现文件的上传、下载与删除功能详解 #### 一、项目背景与技术栈概述 本案例旨在通过Struts2框架与ExtJS前端库的结合来实现文件的批量上传、下载以及删除功能。适用于对Struts2与ExtJS有...

    struts2实现文件上传下载

    public StreamResult download() throws IOException { StreamResult result = new StreamResult(); result.setInputStream(new FileInputStream(fileLocation)); result.setContentType("application/octet-...

    struts-2.3.37.zip

    6. **插件体系**:Struts 2拥有强大的插件机制,可以扩展其功能,如 tiles 插件用于布局管理,json-plugin用于JSON响应,file-upload插件处理文件上传等。 7. **Tiles框架集成**:Tiles提供了一种方式来组织和复用...

    FileUpLoadAndDownLoad

    标题“FileUpLoadAndDownLoad”和描述“FileUpLoadAndDownLoad上传”都直指这一主题。文件上传允许用户将本地计算机上的文件传输到服务器,而下载则是相反的过程,服务器上的文件被获取并保存到用户的设备上。在标签...

    struts2真正实现上传下载完整源代码

    &lt;package name="upload" namespace="/" extends="struts-default"&gt; &lt;action name="upload" class="com.yourcompany.UploadAction"&gt; &lt;result name="success"&gt;/success.jsp &lt;/struts&gt; ``` 在JSP页面上,我们...

    基于Struts2的文件上传下载功能的完整源代码。

    在文件上传下载场景中,一个Action类通常包含两个主要方法:`upload()` 和 `download()`。`upload()` 方法处理文件上传,而 `download()` 方法则负责文件的下载服务。 文件上传的核心组件是`Commons FileUpload`库...

    用struts1实现文件的上传和下载

    2. **定义Download Action**:创建一个Action类,处理文件下载请求。在这个Action中,你需要找到要下载的文件,然后设置响应头以指示浏览器进行文件下载。 3. **设置响应头**:在`execute()`方法中,使用`...

    Struts2上传和下载Action配置

    以上配置确保了“upload”请求会被路由到`UploadAction`的`execute`方法,而“download”请求则会调用`DownloadAction`的`download`方法,返回的`InputStream`会被用来创建HTTP响应。 需要注意的是,实际应用中,...

    struts2文件下载

    此外,Struts2提供了插件机制,如Struts2 File Upload and Download Plugin,可以帮助简化文件下载的实现。这些插件通常提供更高级的功能,如支持大文件下载、断点续传等。 在开发过程中,确保安全是非常重要的。...

    struts2file2

    为了实现文件上传,项目可能包含一个名为`upload.action`的Action,这个Action会接收文件并将其保存到服务器的特定目录下。同时,项目中可能存在一个对应的JSP页面,其中包含一个`&lt;s:form&gt;`标签,这个表单的enctype...

    Struts2上传方法

    ### Struts2上传方法 #### 1. 文件上传的基本原理 在进行文件上传时,我们需要了解文件是如何通过Web表单提交的。表单元素的`enctype`属性指定了表单数据的编码方式,这对于文件上传至关重要。Struts2和其他Web...

    struts2实现多文件上传下载

    2.能够对上传路径进行配置文件指定(upload.properties),使用了一些类似单例模式的静态代码块 3.Struts2进行下载处理,能对上传的所有文件进行下载(多个) 4.文件保存的名称UUID生成,不过显示并下载的名称都是原...

    struts1.x 上传下载

    在Struts1.x中,文件上传主要依赖于`org.apache.struts.upload`包中的类。最常用的是`MultipartRequestHandler`,它实现了Servlet API中的`HttpServletRequestWrapper`接口,允许处理multipart/form-data类型的请求...

    struts2上传下载实例

    接下来,我们需要在struts.xml配置文件中为文件上传操作指定一个Action,配置`&lt;file-upload&gt;`元素来启用文件上传功能: ```xml &lt;action name="upload" class="com.example.UploadAction"&gt; ...

    struts2 上传下载模板

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Struts2中,处理文件上传和下载是常见的需求,这通常涉及到用户交互,如上传图片、文档或任何其他类型的数据。这篇博客...

    Struts文件的上传和下载

    在Struts框架中,文件的上传和下载是常见的功能需求,用于实现用户交互,如上传图片、文档等,或者提供资源的下载服务。下面将详细探讨Struts中文件上传和下载的实现机制。 一、文件上传 1. 配置文件:在Struts2中...

    Struts框架文件上传下载案例

    Struts框架是Java Web开发中常用的一个开源MVC框架,由Apache软件基金会维护。它提供了一种组织应用程序的方式,使得开发者可以更容易地构建基于HTTP协议的、可维护性高的Web应用。在这个“Struts框架文件上传下载...

    struts2文件上传下载

    在Struts2中,这可以通过使用`struts2-file-upload-plugin`插件来实现。首先,你需要在项目的配置文件(如struts.xml)中启用文件上传的支持,并配置相应的拦截器。接着,在Action类中创建一个字段来接收上传的文件...

Global site tag (gtag.js) - Google Analytics