我審閱了關於這個論壇所有類似questions(不僅如此!),並已經嘗試了所有的這些方法卻仍然無法以編程下載測試文件:http://pdfobject.com/markup/examples/full-browser-window.html如何從.html擴展名的網頁下載PDF文件programmatticaly?
以下爲direct link的測試文件我正在嘗試下載。這是一個開放訪問的測試pdf文件,因此任何人都可以使用它來測試下載方法。
如何下載這個特定的文件,使其具有pdf擴展名?
我審閱了關於這個論壇所有類似questions(不僅如此!),並已經嘗試了所有的這些方法卻仍然無法以編程下載測試文件:http://pdfobject.com/markup/examples/full-browser-window.html如何從.html擴展名的網頁下載PDF文件programmatticaly?
以下爲direct link的測試文件我正在嘗試下載。這是一個開放訪問的測試pdf文件,因此任何人都可以使用它來測試下載方法。
如何下載這個特定的文件,使其具有pdf擴展名?
對於下載文件時,也許你可以嘗試這樣的事:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public final class FileDownloader {
private FileDownloader(){}
public static void main(String args[]) throws IOException{
download("http://pdfobject.com/pdf/sample.pdf", new File("sample.pdf"));
}
public static void download(final String url, final File destination) throws IOException {
final URLConnection connection = new URL(url).openConnection();
connection.setConnectTimeout(60000);
connection.setReadTimeout(60000);
connection.addRequestProperty("User-Agent", "Mozilla/5.0");
final FileOutputStream output = new FileOutputStream(destination, false);
final byte[] buffer = new byte[2048];
int read;
final InputStream input = connection.getInputStream();
while((read = input.read(buffer)) > -1)
output.write(buffer, 0, read);
output.flush();
output.close();
input.close();
}
}
+1非常感謝你......我不知道這種方法,但它給出了與其他方法相同類型的錯誤:「儘管文件被保存,已被破壞,無法打開」 – CHEBURASHKA
這很奇怪,因爲它適用於我:http://puu.sh/4N0S6.png也許您的PDF閱讀器已損壞。 –
你很可能是正確的......你會不會包含'import ...'行...也許我有困惑的事情謝謝 – CHEBURASHKA
讓我給你一個更短的解決方案,它帶有一個庫調用JSoup,這BalusC經常使用他的答案。
//Get the response
Response response=Jsoup.connect(location).ignoreContentType(true).execute();
//Save the file
FileOutputStream out = new FileOutputStream(new File(outputFolder + name));
out.write(response.bodyAsBytes());
out.close();
好了,你現在一定已經猜到了,response.body()
就是該PDF。你可以用這段代碼下載任何二進制文件。
非常感謝。我會嘗試這個解決方案+50 – CHEBURASHKA
你可以做那些答案說的。告訴我們你試過的是什麼以及它失敗的原因。 –
你有什麼具體問題?這聽起來像你只是說「它沒有工作」 - 你是否得到錯誤?崩潰?別的東西? – Krease
謝謝你的回覆。我嘗試了所有我發現的方法,但總會有一個錯誤,例如'contentLenght = -1'。我會用我的一個嘗試的代碼更新我的問題,但是它會佔用很多空間。這裏是更新(見上) – CHEBURASHKA