我指的是下面的代碼從特定的URL下載文件。正在從網上下載文本文件,但問題與ePub/Pdf
public class FileFromServerExample extends Activity {
static String PACKAGE_NAME;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
PACKAGE_NAME = getApplicationContext().getPackageName();
File folder = new File("/data/data/"
+ FileFromServerExample.PACKAGE_NAME + "/ePub/");
boolean created = folder.isDirectory();
if (!created) {
folder.mkdir();
}
File file = new File(folder, "Sample.epub");
try {
file.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
Downloader
.DownloadFile(
"http://www.google.co.in/url?sa=t&rct=j&q=sample%20epub%20filetype%3Aepub&source=web&cd=2&ved=0CFMQFjAB&url=http%3A%2F%2Fdl.dropbox.com%2Fu%2F1177388%2Fflagship_july_4_2010_flying_island_press.epub&ei=i5gHUIOWJI3RrQeGro3YAg&usg=AFQjCNFPKsV-tieF4vKv7BXYmS-QEvd7Uw",
file);
}
}
Downloader.java
public class Downloader {
public static void DownloadFile(String fileURL, File directory) {
try {
FileOutputStream f = new FileOutputStream(directory);
URL u = new URL(fileURL);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = in.read(buffer)) > 0) {
f.write(buffer, 0, len1);
}
f.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我在需要的位置越來越Sample.epub
。
但是當我嘗試打開該文件時,收到一條錯誤消息,指出不是有效的zip文件。
我試着用不同的URL,與Pdf
而不是ePub
(它給文件損壞錯誤),但同樣的問題仍然存在。
但是,當我試圖從this sample link下載一個簡單的文本文件時,它正常工作。
所以,按常理,看來this URL下載ePub
可能會被打破,但我成功下載了ePub
這是不是這樣的,如果我訪問從我的PC瀏覽器的鏈接。
但是,當我嘗試從Android應用程序中的此鏈接下載ePub
時,它不起作用。
任何想法,我哪裏會出錯?任何幫助讚賞。
你正在測試哪個android系統? – 2012-07-19 08:55:12
android 2.3 ...但它有什麼關係? – GAMA 2012-07-19 08:57:28
,因爲android> 3.0不允許在「主UI線程」上進行Web請求。這就是爲什麼我只是檢查這種可能性。 – 2012-07-19 09:00:42