我正在使用开放 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”,因为它包含错误。
有人可以指出一个做类似事情的例子吗?