Ok, I'm possibly a step closer to the solution:

(thanks to this post: 
http://groups.google.com/group/android-developers/browse_thread/thread/d6f8b55cf7b5bc6
)

mWebView.setDownloadListener(new DownloadListener()
{
    public void onDownloadStart(String url, String userAgent,
            String contentDisposition, String mimetype,
            long contentLength)
    {
        Log.i("OF", "onDownloadStart(): " + " url = " + url );
        Log.i("OF", " userAgent = " + userAgent );
        Log.i("OF", " contentDisposition = " + contentDisposition );
        Log.i("OF", " mimetype = " + mimetype );
        Log.i("OF", " contentLength (KB) = " + (contentLength /
1024.0) );
    }
});

from this one I can retrieve an easier to parse
"contentDisposition" (no cryptic symbols/encodings)

now the question is: how do I move on to starting a custom download?
I'll show a progress-bar and the file will be downloaded to
apredefined folder.

Is there any other higher level function available or shall I base the
download code on HTTP Get?

thanks

--
Mathieu

On Sep 30, 1:21 pm, bdk <mathieu.b...@gmail.com> wrote:
> Hi
>
> I'm in the following situation: I'm using a WebView in an application
> to allow the download of files stored in a phpBB forum.
> I need to directly handle the downloads, saving the files to the
> application folders with their original names.
>
> I'm bound to Android 2.2 Froyo, so no DownloadManager (if it even
> helps:http://www.vogella.de/blog/2011/06/14/android-downloadmanager-example/
> ).
>
> So, the problem is that the download links for the files are like
> this:
>
>  http://mywebsite.com/download/file.php?id=123
>
> These links get caught by shouldOverrideUrlLoading(), but I can't
> handle the download in a custom way since there's no actual "file path
> and name on the server".
>
> I tried to use an HttpURLConnection and checked the returned headers.
> I located the file name in the "Content-disposition" header value,
> which is something like:
>
> attachment; filename*=UTF-8''the%20file%20name%20on%20the%20server.aaa
>
> Seems like phpBB generates this HTML response header here:
>  https://github.com/phpbb/phpbb3/blob/develop/phpBB/download/file.php#...
> which refers to:
>  https://github.com/phpbb/phpbb3/blob/develop/phpBB/includes/functions...
>   more 
> specificallyhttps://github.com/phpbb/phpbb3/blob/develop/phpBB/includes/functions...
>
> So, WebView alone does not seem able to handle this kind of "Content-
> disposition" HTTP response header.
>
> It must be noted that these phpBB "file.php?id=123" links do work in
> the BrowserActivity that comes with each Android OS, and the correct
> file name pops up in the "save as..." dialog.
>
> ATM I'm digging in BrowserActivity.java present in Android's
> sourcecode repository...
>
> I saw that I might be good to go by using the InputStream returned by
> an HttpURLConnection, as in e.g.:
>
>  http://getablogger.blogspot.com/2008/01/android-download-image-from-s...
>  http://www.helloandroid.com/tutorials/how-download-fileimage-url-your...
>
> In the case that this is the only solution a question remains: how do
> I retrieve the original filename?
> Parsing the "Content-disposition" header value? :S
>
> any hint is appreciated!
> thanks
>
> --
> Mathieu

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to