getphoto.java~32~
来自「采用web2.0技术,采用动态标签,sql语句全部存储在数据库里面.开发速度快.」· JAVA~32~ 代码 · 共 117 行
JAVA~32~
117 行
package com.sztheater.biz.programe;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import com.sztheater.framework.util.*;
import java.lang.*;
public class GetPhoto extends HttpServlet {
private static final String CONTENT_TYPE = "image/*";
private int iSuccFlag = 0;
private String strMsg = null;
private InputStream in = null; //定义输入流
private int len = 10 * 1024 * 1024; //定义字符数组长度
/**Initialize global variables*/
public void init() throws ServletException {
System.out.println("com.sztheater.biz.programe init()");
}
/**Process the HTTP Get request*/
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
//在数据库中照片的ID
String PHOTOID = null;
try {
PHOTOID = request.getParameter("photoid");
} catch (Exception e) {
e.printStackTrace();
}
//连接数据库,自定义的数据库连接池管理类
Connection conn = null;
Statement stmt = null;
try {
conn = DbFunc.getConnection(false);
} catch (Exception e) {
iSuccFlag = -90102;
if (conn != null) {
DbFunc.free(conn, iSuccFlag);
}
conn = null;
strMsg = "服务取数据库连接异常" + e.getMessage();
System.out.println("strMsg" + strMsg);
}
//用来存储照片数据的缓冲区
byte[] buf = null;
//扩展名可以从数据库得到,这里直接指定为JPEG
String photoname = "jpeg";
try {
//根据ID查找照片
String searchSql =
"select Post from T_Content where ContentID ='1'";
stmt = conn.createStatement();
ResultSet RS_photo = stmt.executeQuery(searchSql);
//将图片数据读入缓冲区
if (RS_photo.next()) {
in = rs.getBinaryStream("photo");
response.reset(); //返回在流中被标记过的位置
response.setContentType("image/jpg"); //或gif等
// int len=in.available();//得到文件大小
OutputStream toClient = response.getOutputStream();
byte[] P_Buf = new byte[len];
int i;
while ((i = in.read(P_Buf)) != -1)
{
toClient.write(P_Buf, 0, i);
}
System.out.println("\n\n\n hava image \n\n\n");
//buf = RS_photo.getBytes(1);
} else {
// buf = new byte[0];
}
} catch (Exception e) {
if (conn != null) {
DbFunc.free(conn, true);
}
conn = null;
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (Exception e1) {
}
try {
if (stmt != null) {
stmt.close();
}
} catch (Exception e1) {
}
}
in.close();
toClient.flush(); //强制清出缓冲区
toClient.close();
//response.setContentType(CONTENT_TYPE);
//告诉浏览器输出的是图片
response.setContentType("image/" + photoname);
//图片输出的输出流
OutputStream out = response.getOutputStream();
//将缓冲区的输入输出到页面
out.write(buf);
//输入完毕,清楚缓冲
out.flush();
}
/**Clean up resources*/
public void destroy() {
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?