Struts2-Download
来源:互联网 发布:锁屏也能抢红包的软件 编辑:程序博客网 时间:2024/05/29 09:32
struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="down" extends="struts-default" namespace="/"><action name="down" class="itany.action.DownAction"><result name="success" type="stream"><param name="contentType">application/pdf</param><param name="inputName">pdfStream</param><!-- <param name="contentDisposition">attachment;filename="struts2.pdf"</param> --> <param name="contentDisposition">inline;filename="struts2文档.pdf"</param><param name="bufferSize">4096</param></result></action><action name="down1" class="itany.action.DownAction1"><result name="success" type="stream"><param name="contentType">image/jpeg</param><param name="inputName">imgStream</param><param name="contentDisposition">attachment;filename="${imagename}.jpg"</param> <!-- <param name="contentDisposition">inline;filename="mymotor.jpg"</param>--><param name="bufferSize">4096</param></result></action></package></struts>
Download.java
package itany.action;import java.io.FileInputStream;import java.io.InputStream;import java.net.URLDecoder;import java.net.URLEncoder;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class DownAction extends ActionSupport { /* * * 如果下载的文件不是来自于文件系统,而是读取自数据库的字节流: new ByteArrayInputStream(byte[] content) */ private InputStream pdfStream; public InputStream getPdfStream() { return pdfStream; } public void setPdfStream(InputStream pdfStream) { this.pdfStream = pdfStream; } public String mydown() throws Exception { //下载文件名中文对于不同浏览器版本的支持,需要区别处理 HttpServletRequest request = ServletActionContext.getRequest(); String browser = request.getHeader("user-agent"); System.out.println(browser); String filename = "struts2文档.pdf"; if (browser.contains("MSIE")) // IE filename = URLEncoder.encode(filename, "UTF-8"); else if(browser.contains("Firefox")) // Firefox filename = URLDecoder.decode(URLEncoder.encode(filename, "UTF-8"), "ISO-8859-1"); HttpServletResponse response = ServletActionContext.getResponse(); // response.setContentType("application/pdf"); response.setHeader("Content-Type", "application/pdf"); response.setHeader("Content-Disposition", "attachment;filename=\""+ filename + "\""); // response.setHeader("Content-Disposition","inline;filename=\"struts2.pdf\""); //Provides an output stream for sending binary data to the client. ServletOutputStream sos = response.getOutputStream(); String path = ServletActionContext.getServletContext().getRealPath( "downs") + "/PJUG.pdf"; this.pdfStream = new FileInputStream(path); byte[] pdf = new byte[this.pdfStream.available()]; this.pdfStream.read(pdf); sos.write(pdf); return null;// 自己写流,不需要返回视图 } @Override public String execute() throws Exception { String path = ServletActionContext.getServletContext().getRealPath( "downs") + "/PJUG.pdf"; this.pdfStream = new FileInputStream(path); return SUCCESS;// 使用struts2提供的流结果集必须要返回对应的视图 }}
如果下载的文件不是来自于文件系统,而是读取自数据库的字节流
Download1.java
package itany.action;import java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.InputStream;import java.net.URLDecoder;import java.net.URLEncoder;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class DownAction1 extends ActionSupport {/* * * 如果下载的文件不是来自于文件系统,而是读取自数据库的字节流: new ByteArrayInputStream(byte[] content) */private InputStream imgStream; private int imgId; private String imagename;public InputStream getImgStream() { return imgStream; } public void setImgStream(InputStream imgStream) { this.imgStream = imgStream; } public int getImgId() { return imgId; } public void setImgId(int imgId) { this.imgId = imgId; } public String getImagename() { return imagename; } public void setImagename(String imagename) { this.imagename = imagename; } @Overridepublic String execute() throws Exception { byte[] image=null; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@10.0.5.98:1521:ora9","wk","wk"); PreparedStatement stat=conn.prepareStatement("select imgData from tblImage where imgId="+imgId); ResultSet rset=stat.executeQuery(); if(rset.next()) { image=rset.getBytes("imgData"); } rset.close(); stat.close(); conn.close();this.imgStream=new ByteArrayInputStream(image);return SUCCESS;// 使用struts2提供的流结果集必须要返回对应的视图}}
将图片保存在数据库中
package itany.test;import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import org.junit.Test;public class ImageTest {@Testpublic void saveImage(){try {//通过文件流读取图片FileInputStream fis=new FileInputStream("/home/soft02/Test/a.txt");byte[] image=new byte[fis.available()];fis.read(image);fis.close();//将字节数组写入数据库blob字段Class.forName("oracle.jdbc.driver.OracleDriver");Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@10.0.5.98:1521:ora9","wk","wk");PreparedStatement stat=conn.prepareStatement("insert into tblImage values (?, ?)");stat.setInt(1,3);stat.setBytes(2,image);stat.executeUpdate();stat.close();conn.close();} catch (Exception e) {e.printStackTrace();}}}
- Struts2-Download
- struts2 download实现
- struts2 excel download
- struts2下载download功能
- Download在struts2下的实现
- download
- download
- download
- download
- Download
- download
- download
- download
- download
- download
- download
- downLoad
- download
- HDU1976:A Mini Locomotive
- 用BufferedInputStream 快速复制文件
- 一生
- 飞纵
- 羚羊与狮子
- Struts2-Download
- java在线支付---05_在线支付_编写用于准备请求数据的Servlet
- Memcached提升Web数据操作读写性能
- 项目文件或网站已移动或已重命名,或者不在您的计算机上
- sleep和write的区别
- HDOJ/HDU 2141 Can you find it? 二分搜索优化
- PHP缩小png图片,保留透明色方法
- 我的第二轮进攻开始了
- 人类无法抗拒的10种心理