使用java将文件存储为db2中的bytes []

时间:2012-05-24 00:06:32

标签: java jpa db2

我使用开放式JPA(websphere应用程序服务器)在db2列中存储文件。 JPA实体看起来像:

@Lob
@Nullable
private byte[] content;

使用apache fileupload

将文件存储在数据库中
FileItem item = (FileItem) iterator.next();
byte[] fileData = item.get();
attachment.setContent(fileData);
manager.updateAttachments(attachment);

检索文件:

ServletOutputStream op = response.getOutputStream();
byte buff[] = new byte[8192];
InputStream input = new FileInputStream(uploadedFile);

response.setHeader("Content-Length",String.valueOf(uploadedFile.length()));
response.setHeader("Content-Disposition", "attachment; filename=\""
                    + uploadedFile.getName() + "\"");
int i = 0;
while ((i = input.read(buff)) > 0) {
    op.write(buff, 0, i);
    op.flush();
}

我尝试上传图片文件。检索它时,Firefox会显示以下错误: 无法显示图像“http:// localhost:9081 / SampleFormServlet / retrieveFileServlet”,因为它包含错误。

有人可以指出一个类似的例子吗?

0 个答案:

没有答案