JAVA Web 之 struts2文件上传下载演示(二)

一、文件上传演示

详细查看本人的另一篇博客 http://titanseason.iteye.com/blog/1489397

二、文件下载演示

1.Web界面

由于我的操作是,先上传文件,然后才能下载,所以,html代码中的fileFileName=${newFileName},而不是等于具体的文件名,大家在自己做项目的时候,可以修改一下

html代码:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>下载文件</title>
</head>
<body>
<div align="center">
<a href="download?fileFileName=${newFileName}">下载</a>
</div>
</body>
</html>

2.Struts配置

xml代码:

         <action name="download" class="action.FileAction" method="download">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<!-- filename的属性值,表示的是下载的时候,显示在下载工具中的文件名,而不一定是保存的文件的文件名 -->
<param name="contentDisposition">attachment;filename="${fileFileName}"</param>
<!-- 下载的文件流的方法名, 也就是说, 在Java代码里面必须有InputStream getDownloadFile()这个方法 -->
<!-- 在这里定义成文件名xxx,那么对应在Java文件中就必须要有InputStream getXxx()方法 -->
<param name="inputName">downloadFile</param>
<!-- 缓存大小 -->
<param name="bufferSize">4096</param>
</result>
<result name="input">index.jsp</result>
</action>

3.Java后台代码

java代码:

     public String download(){
return SUCCESS;
} public InputStream getDownloadFile() {
return ServletActionContext.getServletContext().getResourceAsStream(
"/file/" + fileFileName);
}

4.小注

至此,文件下载演示完成

<1>如果下载的时候,出现中文乱码,请看另一篇博客

http://titanseason.iteye.com/blog/1489517

<2>下载的效果图如下所示

JAVA Web 之 struts2文件上传下载演示(二)(转)的更多相关文章

  1. JAVA Web 之 struts2文件上传下载演示(一)(转)

    JAVA Web 之 struts2文件上传下载演示(一) 一.文件上传演示 1.需要的jar包 大多数的jar包都是struts里面的,大家把jar包直接复制到WebContent/WEB-INF/ ...

  2. Struts2文件上传下载

    Struts2文件上传 Struts2提供 FileUpload拦截器,用于解析 multipart/form-data 编码格式请求,解析上传文件的内容,fileUpload拦截器 默认在defau ...

  3. java 如何实现大文件上传下载(传输)各种格式

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小 ...

  4. Java使用 SFTP实现文件上传下载

    package com.lijy.util; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import co ...

  5. Android与Asp.Net Web服务器的文件上传下载BUG汇总[更新]

    遇到的问题: 1.java.io.IOException: open failed: EINVAL (Invalid argument)异常,在模拟器中的sd卡创建文件夹和文件时报错 出错原因可能是: ...

  6. Struts2之文件上传下载

    本篇文章主要介绍如何利用struts2进行文件的上传及下载,同时给出我在编写同时所遇到的一些问题的解决方案. 文件上传 前端页面 <!-- 引入struts标签 --> <%@tag ...

  7. java web 文件上传下载

    文件上传下载案例: 首先是此案例工程的目录结构:

  8. Struts2文件上传和下载(原理)

    转自:http://zhou568xiao.iteye.com/blog/220732 1.    文件上传的原理:表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:1)     ...

  9. Struts2 文件上传,下载,删除

    本文介绍了: 1.基于表单的文件上传 2.Struts 2 的文件下载 3.Struts2.文件上传 4.使用FileInputStream FileOutputStream文件流来上传 5.使用Fi ...

随机推荐

  1. ASP.NET MVC 入门3、Routing

    本系列文章基于Microsoft ASP.NET MVC Beta. 在一个route中,通过在大括号中放一个占位符来定义( { and } ).当解析URL的时候,符号"/"和& ...

  2. Oracle系列之索引

    涉及到表的处理请参看原表结构与数据  Oracle建表插数据等等 Oracle索引.权限 介绍 为什么添加了索引后,会加快查询速度呢? 索引是用于加速数据存取的数据对象.合理的使用索引可以大大降低i/ ...

  3. Heartbeat+DRBD+NFS 构建高可用的文件系统

    1.实验拓扑图 2.修改主机名 1 2 3 vim /etc/sysconfig/network vim /etc/hosts drbd1.free.com     drbd2.free.com 3. ...

  4. C#的同步和异步调用方法

    同步和异步大家都明白什么意思,在这里不多介绍了. namespace ConsoleTest { class Program { static void Main(string[] args) { C ...

  5. Wordpress Jigoshop插件路径泄露漏洞

    漏洞名称: Wordpress Jigoshop插件路径泄露漏洞 CNNVD编号: CNNVD-201311-109 发布时间: 2013-11-12 更新时间: 2013-11-12 危害等级:   ...

  6. [King.yue]关于代码调试时的缓存问题的一个解决办法

    后台构造数据更改之后,页面数据一直不变,试过各种办法,清空浏览器缓存,停止端口重新运行,关掉程序重新打开,都不可以.最终全部重新生成之后,终于可以正常调试了. 另:调试ASP.NET网站程序的时候,为 ...

  7. We're Hiring A Software Tester

    测试人员的基本修养: 代码编写,不可或缺 乔布斯说:Design is not just what it looks like and feel like,design is how it works ...

  8. seleniumRC启动及浏览器实例配置

    一.firefox浏览器实例配置 1.启动用户配置文件管理器 重要:在启动用户配置文件管理器之前,Firefox必须完全关闭.     1)按 support.cdn.mozilla.net/medi ...

  9. office文件密码破解方法及软件

    今天会用到3个软件 1.Office Password Remover 说明:这个软件可以很快破解.doc   .xls的密码 使用方法:参考百度经验里面的文章http://jingyan.baidu ...

  10. mac编程的debug工具

    Chisel是一个加强LLDB调试能力的小插件.主要特点在于辅助界面开发调试时在控制台以尽可能直观的方式查看界面的元素和情况.为我们梳理视图,控制器以及类关系层级.以及一些临时的界面调试变动进行快捷响 ...