gpt4 book ai didi

java 将数据库中的文件下载到PC

转载 作者:行者123 更新时间:2023-12-01 22:40:59 25 4
gpt4 key购买 nike

我从数据库获取图像(jpeg 或 pdf)并希望将其下载到 PC。但是,!file.exists() 无法识别该图像。这表明 File file = new File(resourceDetail.getResourseImage()); 不正确。请问正确的编码方法是什么?

注意:resourceDetail.getResourseImage()是实际图像而不是路径。

我的代码是:

        resourceDetail = MySQLConnection.resourceDownload(fileID);

FileInputStream stream = null;
try {
File file = new File(resourceDetail.getResourseImage());
System.out.println("resourceDetail.getResourseImage(): " + resourceDetail.getResourseImage());

if (!file.exists()) {
System.out.println("File does not exist: ");
// context.addMessage(new ErrorMessage("msg.file.notdownloaded"));
// context.setForwardName("failure");
} else {
System.out.println("File exist: ");
if (resourceDetail.getResourseImageType().equals("pdf")){
System.out.println("pdf: ");
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename='myfile.pdf'");
}else{
System.out.println("jpeg: ");
response.setContentType("image/jpeg");
response.setHeader("Content-Disposition", "attachment; filename='myfile.jpg'");
}
// response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
System.out.println("stream: ");
stream = new FileInputStream(file);
response.setContentLength(stream.available());
OutputStream os = response.getOutputStream();
os.close();
response.flushBuffer();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

最佳答案

resourceDetail.getResourseImage() 得到字符串数据,可以直接使用:OuputStream#write(bytes) 将数据写入响应。在您的情况下,只需使用·os.write(resourceDetail.getResourseImage().getByets());`来执行此操作。

示例代码:

resourceDetail = MySQLConnection.resourceDownload(fileID);
try {
System.out.println(
"resourceDetail.getResourseImage(): " + resourceDetail.getResourseImage());

if (resourceDetail.getResourseImageType().equals("pdf")) {
System.out.println("pdf: ");
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename='myfile.pdf'");
} else {
System.out.println("jpeg: ");
response.setContentType("image/jpeg");
response.setHeader("Content-Disposition", "attachment; filename='myfile.jpg'");
}
response.setContentLength(resourceDetail.getResourseImage().length());
OutputStream os = response.getOutputStream();
os.write(resourceDetail.getResourseImage().getBytes());
os.close();
response.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

关于java 将数据库中的文件下载到PC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58495882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com