【发布时间】:2016-10-22 17:46:34
【问题描述】:
大家好,我正在尝试构建一个网络应用程序,用户可以在其中上传图片到他们的个人资料中。因此,我将表用户和图像作为该表上的一行中的一个 blob,现在我正在尝试使用 java servlet 检索它,但我只得到一个小的空白方块。我的代码:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class Profile extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
ServletOutputStream out = response.getOutputStream();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection
("jdbc:mysql://195.251.267.131:3306/****","****","****");
PreparedStatement ps=con.prepareStatement
("select * from users where email=?");
HttpSession session=request.getSession(false);
if(session!=null){
String email=(String)session.getAttribute("email");
Blob photo = null;
ps.setString(1, email);
ResultSet rs =ps.executeQuery();
while(rs.next()) {
photo = rs.getBlob(1);
}
response.setContentType("image/jpg");
InputStream in = photo.getBinaryStream();
int length = (int) photo.length();
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
while ((length = in.read(buffer)) != -1) {
System.out.println("writing " + length + " bytes");
out.write(buffer, 0, length);
}
in.close();
out.flush();
}
}
}
【问题讨论】:
-
也许可以通过调试器逐步检查接收到的内容,然后将其写在这里?您还应该检查您的客户端以确保它发送了一些东西。