将图像数据作为字节数组与来自servlet的名称一起写入

时间:2015-04-16 13:47:34

标签: java servlets outputstream

我将图像数据作为字节数组,我的servlet必须将该数据与名称一起写入输出流。

当客户端从servlet读取流时,客户端将使用相同的文件名保存这些图像。

我怎么能在servlet中做到这一点?

注意:图像不可用作服务器中的文件。 Servlet从数据库中读取它。

2 个答案:

答案 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标头设置为图像类型可能也是一个好主意。