浅谈Struts2下载文件的方法实现

Struts2下载文件实现的说明

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"

bufferSize

下载缓冲区的大小

Struts2下载实现源代码

< ?xml version="1.0" encoding="UTF-8" ?>"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""< A href="http://struts.apache.org/dtds/struts- 2.0.dtd">
http://struts.apache.org/dtds/struts-2.0.dtd< /A>">
    < PACKAGE name="default" extends="struts-default">< !-- 在这里添加Action定义 -->
< !-- 简单文件下载 -->
< ACTION class=example.FileDownloadAction name="download">
< RESULT name="success" type="stream">
< PARAM name="contentType">text/plain< /PARAM>
< PARAM name="inputName">inputStream< /PARAM>
< PARAM name="contentDisposition">attachment;filename="struts2中文.txt"< /PARAM>
< PARAM name="bufferSize">4096< /PARAM>
< /RESULT>
< /ACTION>
< BR>        < !-- 文件下载,支持中文附件名 -->
< ACTION class=example.FileDownloadAction2 name="download2">
< !-- 初始文件名 -->
< PARAM name="fileName">Struts中文附件.txt< /PARAM>
< RESULT name="success" type="stream">
< PARAM name="contentType">text/plain< /PARAM>
< PARAM name="inputName">inputStream< /PARAM>
< !-- 使用经过转码的文件名作为下载文件名,downloadFileName属性
对应action类中的方法 getDownloadFileName() -->
< PARAM name="contentDisposition">attachment;filename="${downloadFileName}"< /PARAM>
< PARAM name="bufferSize">4096< /PARAM>
< /RESULT>
< /ACTION>

< !-- 下载现有文件 -->
< ACTION class=example.FileDownloadAction3 name="download3">
< PARAM name="inputPath">/download/系统说明.doc< /PARAM>
< !-- 初始文件名 -->
< PARAM name="fileName">系统说明.doc< /PARAM>
< RESULT name="success" type="stream">
< PARAM name="contentType">application/octet-stream;charset=ISO8859-1< /PARAM>
< PARAM name="inputName">inputStream< /PARAM>
< !-- 使用经过转码的文件名作为下载文件名,downloadFileName属性
对应action类中的方法 getDownloadFileName() -->
< PARAM name="contentDisposition">attachment;filename="${downloadFileName}"< /PARAM>
< PARAM name="bufferSize">4096< /PARAM>
< /RESULT>
< /ACTION>
< /PACKAGE>

时间: 2024-12-01 03:06:24

浅谈Struts2下载文件的方法实现的相关文章

浅谈struts2之chain[2]

      上午写了<<浅谈struts2之chain[1]>>,现在接着写下半部分:从源码的角度谈chain的机制 因为我的源码全是通过反编译jar包得来,不能保证100%的正确性,若遇到不对的地方,请大家指出.也请大家先谅解 在<<浅谈struts2之chain[1]>>最后,用了一个简略图来表示chain机制: 但实际上,如果考虑valuestack的话,这幅图应该这样画: 对于此图中,关键性两个步骤:5和6, 实际上涉及到两个拦截器: 1)chain

浅谈struts2之chain[1]

        前一段时间,有关chain的机制着实困绕了许久.尽管网上有许多关于chain的解说,但要不是只谈大理论,不结合实例:要不就是只有示例,没有挖出示例背后的意义.    先解释下chain吧: Chain:基本用途是构造成一条动作链.前一个动作将控制权转交给后一个动作,而前一个动作的状态在后一个动作里仍然保持着.动作链由Chaining拦截器负责处理,因为这个拦截器是defaultStack拦截器栈的一份子,多以你随时都可以使用动作链.       有人说:chain是共享value

浅谈c++中的输入输出方法_C 语言

cin:  当碰到空格或换行符'\n'时,输入结束: char a[10],b[10]; cout<<"Enter some input:\n"; cin>>a>>b; cout<<a<<b<<"End\n"; 输出结果为: Enter some input: 12 34 56 1234END cin.getline: 当碰到换行符'\n'或达到所能接受的最大字符数时,输入结束: char a[

python实现支持目录FTP上传下载文件的方法

  本文实例讲述了python实现支持目录FTP上传下载文件的方法.分享给大家供大家参考.具体如下: 该程序支持ftp上传下载文件和目录.适用于windows和linux平台. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

PHP实现从远程下载文件的方法

 这篇文章主要介绍了PHP实现从远程下载文件的方法,涉及php操作文件的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了PHP实现从远程下载文件的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php if ($_GET[xfer]) { if ($_POST[from] == "") { print "You forgot to enter a url

php实现SAE上使用storage上传与下载文件的方法_php技巧

本文实例讲述了php实现SAE上使用storage上传与下载文件的方法.分享给大家供大家参考.具体如下: <?php if ($_FILES["file"]["error"] > 0) { echo "Error: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Upload: "

PHP实现从远程下载文件的方法_php技巧

本文实例讲述了PHP实现从远程下载文件的方法.分享给大家供大家参考.具体实现方法如下: <?php if ($_GET[xfer]) { if ($_POST[from] == "") { print "You forgot to enter a url."; } else { copy("$_POST[from]", "$_POST[to]"); $size = round((filesize($_POST[to])/

客户端取消异常-struts2 下载文件点取消抛异常(具体如下)

问题描述 struts2 下载文件点取消抛异常(具体如下) 下载服务的文件不在本地,是通过网络从其它服务器取的,如果点下载取消就会报下面的错误,(如果文件是在本机web服务器上不会报错) ClientAbortException: java.io.IOException at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358) at org.apache.tomcat.util.buf.

PHP安全下载文件的方法_php技巧

本文实例讲述了PHP安全下载文件的方法.分享给大家供大家参考,具体如下: <?php header('Content-Type:text/html;Charset=utf-8'); define('ROOT_PATH', dirname(__FILE__)); /** * 下载文件 * @param string $file_path 绝对路径 */ function downFile($file_path) { //判断文件是否存在 $file_path = iconv('utf-8', 'g