特定の URL からファイルをダウンロードするには、次のコードを参照しています。
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
希望の位置に来ています。
しかし、そのファイルを開こうとすると、Not a valid zip fileというエラー メッセージが表示されました。
Pdf
の代わりにさまざまな URL を試してみましたがePub
(ファイル破損エラーが発生します)、同じ問題が解決しません。
しかし、このサンプルリンクから簡単なテキストファイルをダウンロードしようとすると、正常に動作します。
常識的には、ダウンロードするこの URLが壊れている可能性があるように見えますが、PC のブラウザーからリンクにアクセスするePub
と正常にダウンロードされたので、そうではありません。ただし、Android アプリケーションでこのリンクからダウンロードしようとすると、機能しません。ePub
ePub
どこが間違っているのですか?どんな助けでも感謝します。