使用struts2+Hibernate4上传实现头像保存,并将图片路径存储至数据库,且显示在jsp页面

1.上传到服务器已经实现并且保存到数据库中了
2.获得服务器上的图片怎么实现
图片说明

2个回答

既然已经存储了,那么就是图片的回显了,读取数据库中的图片路径,然后将图片内容响应给页面就可以了。
主要代码:

String filePath = "具体数据库存储的路径";

resp.setDateHeader("Expires", 0L);
resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
resp.addHeader("Cache-Control", "post-check=0, pre-check=0");
resp.setHeader("Pragma", "no-cache");
resp.setContentType("image/jpeg");

ServletOutputStream out = resp.getOutputStream();
out.write(FileUtils.readFileToByteArray(new File(filePath)));

FileUtils 是 apache.common.的一个工具类。

wojiushiwo945you
毕小宝 回复a19892213: 要不然你补充你的问题,贴上你的用法?
大约一年之前 回复
a19892213
a19892213 每次都关闭的
大约一年之前 回复
wojiushiwo945you
毕小宝 回复a19892213: 那可能是你用 Response 的响应流的方式不对,必选先用再关闭。
大约一年之前 回复
a19892213
a19892213 我想问个问题我每次下载文件或者预览文件都会显示Cannot call sendError() after the response has been committed这个,但是前台不会出错
大约一年之前 回复
a19892213
a19892213 通过这种方式能获得图片
大约一年之前 回复
wojiushiwo945you
毕小宝 回复a19892213: 图片地址呀,那就更好解决了的呀,直接读取图片地址的内容,然后将图片内容响应给页面就可以了呀。
大约一年之前 回复
a19892213
a19892213 存放到数据库是图片地址,显示不出来
大约一年之前 回复

/**
* download模版
*/
public String download(){
downloadFile = templateService.getInputStreamById(model.getId());

    Template template = templateService.getById(model.getId());
    String agent = ServletActionContext.getRequest().getHeader("user-agent");
    try {
        fileName = encodeDownloadFilename(template.getName() + ".doc",agent);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally {
        try {
            downloadFile.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    return "download";

}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问