Struts2_文件下载
来源:互联网 发布:js获取json中的数据 编辑:程序博客网 时间:2024/05/22 01:59
生活可以漂泊,可以孤独,但灵魂必须有所归依。
Struts2中,文件下载是常用的,下面是文件下载的相关步骤:
1.首先有一个前端界面
<%@ page language="java" pageEncoding="UTF-8" %><%@ page contentType="text/html; charset=UTF-8" %><!DOCTYPE html ><html><head><meta charset="UTF-8"><title>下载界面</title></head><body> <a href="download.action">下载</a></body></html>
2.配置struts.xml文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="root" namespace="/" extends="struts-default"> <action name="download" class="com.action.DownloadAction"> <result type="stream"> <param name="inputName">input</param> <param name="contentDisposition"> attachment;filename=${filename}</param> </result> </action> </package> </struts>
注意:
1.结果类型必须要写成type=”stream”,与之对应的处理类是org.apache.struts2.dispatcher.StreamResult。
2.
1)<param name="contentDisposition">attachment;fileName="${fileName}"</param>
contentDisposition默认是 inline(内联的), 比如说下载的文件是文本类型的,就直接在网页上打开,不能直接打开的才会打开下载框自己选择
2) attachment :下载时会打开下载框
3) fileName=”${fileName}” :在这定义的名字是一个动态的,该名字是显示在下载框上的文件名字
3.Action处理
package com.action;import java.io.InputStream;import org.apache.struts2.ServletActionContext;public class DownloadAction { //定义一个输入流,对于客户端是输入流,但是对于服务端是输出流 private InputStream input; //定义一个文件名字 private String filename; public InputStream getInput() { return input; } public void setInput(InputStream input) { this.input = input; } public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } public String execute() { filename="1.jpg"; input=ServletActionContext.getServletContext().getResourceAsStream("/upload/"+filename); System.out.println(input); return "success"; }}
文件名有中文的时候,会有中文乱码问题,需要对文件名进行编码处理。
注意:处理的顺序,需要先获取输出流,在处理文件名。
public String execute() { filename="哈哈.jpg"; input=ServletActionContext.getServletContext().getResourceAsStream("/upload/"+filename); System.out.println(input); //针对中文乱码,进行转码 try { filename=URLEncoder.encode(filename, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return "success"; }
阅读全文
0 0
- Struts2_文件下载
- struts2_文件下载
- Struts2_文件下载
- 27.struts2_文件的下载
- Struts2_文件上传_Demo
- struts2_文件上传下载
- Struts2_单文件上传
- Struts2_多文件上传
- struts2_文件上传
- Struts2_文件上传
- Struts2_事物管理&文件上传
- Struts2_事物管理&文件上传
- 42. Struts2_文件的上传
- 26.struts2_文件的上传
- struts2_大纲08_文件上传下载
- Struts2_配置包范围国际化资源文件
- Struts2_学习笔记(一)--------学习工具下载、HelloWorld、运行机制
- Struts2_学习笔记(一)--------学习工具下载、HelloWorld、运行机制
- docker的安装与基本操作
- gdb 调试工具 --- 使用方法浅析
- Android编译环境
- Thinking in java-39 序列化 Serialization
- 如何用SHELL编写一个进度条
- Struts2_文件下载
- LeetCode 树序列化与反序列化[递归]297. Serialize and Deserialize Binary Tree
- HDU 1789 Doing Homework again(贪心)
- leetcode 415. Add Strings
- 图像处理神器 ImageMagick 命令介绍
- html知识点:#语义元素;#iframe;#块元素与内联元素display
- vector和map的效率简要比较
- 如何使用JavaScript来判断是否为移动设备
- 看了就懂的Websocket原理