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);
}
}

下载器.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

我尝试使用各种 URL,Pdf而不是ePub(它给出文件损坏错误),但同样的问题仍然存在。

但是,当我尝试从此示例链接下载一个简单的文本文件时,它可以正常工作。

所以按照常识,这个下载的URLePub似乎可能被破坏了,但ePub如果我从我的 PC 浏览器访问链接,我成功下载的情况并非如此。
但是,当我尝试ePub在 android 应用程序中从此链接下载时,它不起作用。

任何想法,我要去哪里错了?任何帮助表示赞赏。

4

1 回答 1

2

这是因为您没有指向直接网址。相反,在浏览器中,谷歌会重定向到原始网址。在您的情况下,原始链接是:

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

如果您尝试下载此直接 url,您将成功。

于 2012-07-19T09:03:23.537 回答