1

特定の 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

どこが間違っているのですか?どんな助けでも感謝します。

4

1 に答える 1

2

これは、直接の URL を指していないためです。ブラウザでは代わりに、Google は元の URL にリダイレクトします。あなたの場合、元のリンクは次のとおりです。

http://dl.dropbox.com/u/1177388/flagship_july_4_2010_flying_island_press.epub

この直接の URL をダウンロードしようとすると、成功します。

于 2012-07-19T09:03:23.537 に答える