package mypack;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class DownloadServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
OutputStream out; //輸出響應(yīng)正文的輸出流
InputStream in; //讀取本地文件的輸入流 //獲得filename請(qǐng)求參數(shù)
String filename=request.getParameter("filename");
if(filename==null){
out=response.getOutputStream();
out.write("Please input filename.".getBytes());
out.close();
return;
} //創(chuàng)建讀取本地文件的輸入流
in= getServletContext().getResourceAsStream("/store/"+filename);
int length=in.available(); //設(shè)置響應(yīng)正文的MIME類型
response.setContentType("application/force-download");
response.setHeader("Content-Length",String.valueOf(length));
response.setHeader("Content-Disposition", "attachment;filename=\""+filename +"\" ");/** 把本地文件中的數(shù)據(jù)發(fā)送給客戶 */
out=response.getOutputStream();
int bytesRead = 0;
byte[] buffer = new byte[512];
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
in.close();
out.close();
}
}
posted @
2010-12-03 22:04 ForMeBlog 閱讀(210) |
評(píng)論 (0) |
編輯 收藏
如果你在你的數(shù)據(jù)庫(kù)中存的Blob類型的圖片,你想讀取它并顯示為圖片。你可以先建一個(gè)showimage.jsp頁(yè)面,如果你連接數(shù)據(jù)庫(kù)的密碼和用戶名跟這里不一樣,記得要改一下不然就會(huì)出錯(cuò)。
<%@ page contentType="text/html;charset=bg2312"%>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>顯示數(shù)據(jù)庫(kù)圖片測(cè)試頁(yè)</title>
</head>
<body>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:denglu","root","root");
Statement stmt=con.createStatement();
String sql=new String();
sql = "select id from picturenews";
ResultSet rs=stmt.executeQuery(sql);
//顯示最后一條記錄的圖片
rs.last();
%>
<table>
<tr><td><img src='testimageout.jsp?id=<%=rs.getInt("id")%>'></td></tr>
</table>
</body>
</html>
在建另一頁(yè)面讀取數(shù)據(jù)庫(kù)中圖片testimageout.jsp
<%@ page contentType="text/html; charset=gbk" %>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*, javax.sql.*" %>
<%@ page import="java.util.*"%>
<%@ page import="java.math.*"%>
<%
String photo_no = request.getParameter("photo_no");
//mysql連接
Class.forName("com.mysql.jdbc.Driver").newInstance();
String URL="jdbc:mysql://localhost:3306/todream";
Connection con = DriverManager.getConnection(URL,"root","root");
try{
// 準(zhǔn)備語(yǔ)句執(zhí)行對(duì)象
Statement stmt = con.createStatement();
String sql = " SELECT * FROM todream_exhibition WHERE id = "+ photo_no;
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
Blob b = rs.getBlob("workimg");
long size = b.length();
//out.print(size);
byte[] bs = b.getBytes(1, (int)size);
response.setContentType("image/jpeg");
OutputStream outs = response.getOutputStream();
outs.write(bs);
outs.flush();
rs.close();
}
else {
rs.close();
response.sendRedirect("./images/error.gif");
}
}
finally{
con.close();
}
%>
轉(zhuǎn)載http://wenwen.soso.com/z/q114766705.htm 如果你想嘗試你必須要將數(shù)據(jù)庫(kù)建好,并與這一樣或?qū)sp頁(yè)面改了跟你的一樣。
posted @
2010-11-16 13:49 ForMeBlog 閱讀(1212) |
評(píng)論 (0) |
編輯 收藏
今天是星期四,這一星期過(guò)的還是比較好的,過(guò)的很充分,每節(jié)課都聽得進(jìn)去。學(xué)習(xí)的東西基本上都會(huì)。昨天定了立個(gè)計(jì)劃,現(xiàn)在也知道自己干什么啦!這星期過(guò)后可能就要考試了,不過(guò)我不是太緊張,因?yàn)槲覀€(gè)人認(rèn)為自己學(xué)的還會(huì)可以吧!每天學(xué)習(xí)10分鐘10年之后你將會(huì)成為這方面的專家。
posted @
2009-12-03 15:38 ForMeBlog 閱讀(167) |
評(píng)論 (0) |
編輯 收藏