【发布时间】:2012-09-06 16:00:30
【问题描述】:
我写了一个通过url下载文件的小程序。我可以正确打开的所有其他文件格式,但对于下载的 pdf,这是不可能的。
public static void saveFile(String fileUrl, String destinationFile) throws IOException {
URL url = new URL(fileUrl);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(destinationFile);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
os.flush();
is.close();
os.close();
}
我需要特殊的方式来处理 pdf 下载吗?
当我尝试通过浏览器中的 URL 获取选定的 pdf 时,它会正确显示
编辑
在代码中添加了flush(),仍然没有成功
尝试在浏览器 (FF) 中打开损坏的 pdf 返回错误:
文件不以“%PDF-”开头
Adobe Reader 返回:
文件无法打开,因为它不是受支持的文件类型 或者因为文件已损坏。
Damages pdf 的尺寸比原始文件小(约 80%)
【问题讨论】:
-
大电影文件是否正确下载?
-
@pst 没有电影文件,只有文本(pdf、doc、xls)和图像
-
尝试使用与 PDF 大小相似(或更大)的不同 二进制文件 格式。还是该问题仅与特定服务器有关?
-
@pst 我认为文件大小无关紧要,因为我正在下载比这些 pdf 更大的 doc 文件
-
文件确实不是以
%PDF-开头的吗?是空的吗?它从什么开始?它实际上是否包含 HTML 错误页面或类似内容?
标签: java http url file-io download