Pobieranie pliku z poziomu apletu

0

Witam.

Mam mały problem z działaniem programu jako aplet.

Otóż program, jako aplikacja działa w porządku - plik pobierany jest z adresu URL i zapisywany w odpowiednim miejscu na dysku.

Problem pojawia się gdy uruchamiam program ( ten sam kod, tylko z metodami init, start, stop ... ) jako aplet.

Wówczas aplet zamiast pliku exe, który jest dostępny pod adresem URL pobiera "ciało" strony z której ma zostać pobrany:

<!doctype html>
<!-- Server: sfs-consume-7 -->

<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6" > <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="no-js ie7" > <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="no-js ie8" > <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="no-js ie9" > <![endif]-->
<!--[if (gt IE 9)|!(IE)]>--> <html lang="en" class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">

...
...
...

Link testowy z którego pobieram plik to :

http://downloads.sourceforge.net/sevenzip/7z920.exe

Poniżej fragment kodu odpowiedzialny za pobieranie:

                    urlLink = (String)downloadData.get(i);
                
                    URL url = new URL(urlLink);
                
                    URLConnection conn = url.openConnection();
                                
                    connectionLength = conn.getContentLength();

                    InputStream reader = url.openStream();

                    FileOutputStream writer = new FileOutputStream(downloadPath + fileName);
                    
                    buffer         = new byte[153600];
                    totalBytesRead = 0;
                    bytesRead      = 0;

                    thread1.start();

                    while ((bytesRead = reader.read(buffer)) > 0)
                    { 
                        writer.write(buffer, 0, bytesRead);
                        buffer = new byte[153600];
                        totalBytesRead += bytesRead;
                    }

                    writer.close();
                    reader.close();
                

Ktoś orientuje się może co robię nie tak?

Czy z kontekstu apletu muszę obsłużyć jeszcze jakąś sytuację, aby pobrać faktycznie plik z serwera zamiast strony Internetowej?

Z góry dzięki za pomoc.

Pozdrawiam

0

Może po prostu wyłuskaj z pobranej strony ten właściwy adres.

0

Zaintrygowało mnie to. Aplet uruchomiony w appletviewerze pobiera co trzeba.

0

Hm... wget łapie prawidłowo plik. Ja mam taką propozycję. Odpal aplet jednocześnie obserwując np. firebugiem jaki request jest wysyłany na serwer. Możliwe, że wtyczka w przeglądarce strzela jakiegoś focha np. dołączając do żądania swój user agent.

1 użytkowników online, w tym zalogowanych: 0, gości: 1