我将图像数据作为字节数组,我的servlet必须将该数据与名称一起写入输出流。
当客户端从servlet读取流时,客户端将使用相同的文件名保存这些图像。
我怎么能在servlet中做到这一点?
注意:图像不可用作服务器中的文件。 Servlet从数据库中读取它。
答案 0 :(得分:0)
有几种不同的常见图像格式。从数据库中流式传输字节是一回事,但servlet绝对必须将内容类型设置为正确的图像格式才能使其工作。
要从数据库中提取图像数据,请参阅ResultSet.getBinaryStream
答案 1 :(得分:0)
如果servlet是HTTPServlet,那么你可以这样做:
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ImageServlet extends HttpServlet {
@Override
public void service(HttpServletRequest req, HttpServletResponse resp) {
byte[] imageByteArray = Database.getImage();
resp.getOutputStream().write(imageByteArray);
}
}
您必须使用自己的代码交换Database.getImage()。
将HTTP ContentType标头设置为图像类型可能也是一个好主意。