Applety i obsługa plików

0

Witam

Przeczytałem wszystkie posty na temat obsługi plików jakie udało mi się znaleźć na tym forum, jednak nie rozwiązało to mojego problemu.
Mam do napisania applet który przeprowadza pewnego rodaju test i potrzebuje zapisać jego wyniki na w pliku tekstowym na tym samym serwerze na którym się znajduje applet.
Czy jest to możliwe bez podpisywania appletu? Czytałem że appet może się łaczyć z serwerem z którego został pobrany ale nie znalazłem jak to zrobić tzn nie działa mi to.

Był bym bardzo wdzięczny za pomoc
Pozdrawiam

0

Nie da sie tego zrobic w bezpieczny sposob. W applecie musialoby byc przechowywane haslo serwera, co za tym idzie moznaby je dosc latwo odczytac, ale jesli chcesz to zrobic mozesz uzyc np protokolu ftp.
Poza tym podpisywanie appletu chyba nie jest tutaj konieczne skoro nie chcesz zapisywac/czytac pliku z komputera na ktorym uruchamiany jest applet.

0

No właśnie chce zapisywać wyniki testu na serwerze tam gdzie znajduje się applet ale jest on uruchamiany na komputerach użytkowników przez preglądarkę.
A jak użyć ftp?

i dzięki za odpowiedź :)

0

No musisz napisac wlasnego klienta ftp lub skorzystac z jakichs gotowych klass, ale jak juz pisalem takie rozwiazanie to nie jest dobry pomysl

0

Możesz to też wysłać całość na serwer za pomocą http metodą POST i następnie zapisać to za pomocą serwletu
.

0

Nie da się tego zrobić prościej?
A w jaki sposób mogę coś wysłać metodą POST? Czy można też wysyłać dłuższy tekst?

0
Jarekk napisał(a)

A w jaki sposób mogę coś wysłać metodą POST? Czy można też wysyłać dłuższy tekst?

Można.

POST/GET
1)Formatujesz nagłówek żadania HTTP i przesyłasz do serwera
2)Używasz odpowiedniej klasy która to zrobi za ciebie

FTP
1)FTP poprzez mechanizm URI/URL
http://mindprod.com/jgloss/uri.html
http://www.nsftools.com/tips/JavaFtp.htm
Jeśli nie będzie działać pod Operą to się nie przejmuj mi też nie działało , jeśli będzie działać to się pochwal jak ;-)
2)Ręczne formatowanie nagłówków żądań lub Klient FTP jako bibloteczka :
http://jakarta.apache.org/commons/net/apidocs/org/apache/commons/net/ftp/FTPClient.html

0

http://www.sum-it.nl/en200141.html <- tutorial jak wysyłać coś postem za pomocą apletu. To co się dzieje na serwerze to już rzecz wtórna bo możesz użyć nawet phpowego "gotowca" do zapisywania plików.

0

Tyle, że jeśli Ty możesz wysyłać dane na serwer przez protokół http (bez hasła), to znaczy, że każdy inny może to zrobić. Proponowałbym więc zablokować, chociaż w prowizoryczny sposób, taką możliwość.

0

Można też dodać ID do apletu. Następnie aplet będzie przedstawiał się swoim ID i dopiero w takim przypadku serwer będzie akceptował przychodzące pliki.

0

Próbuję wysłać dane metodą POST ale coś mi nie wychodzi. Nie mam pojęcia czy dane się nie wysyłają czy ich nie odbieram poprawnie.

Kod do wysyłania:

        String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
        data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
    
        // Send data
        URL url = new URL("http://przymusiala.net/projekt/java/applet.php");
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
    
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
            // Process line...
        }
        wr.close();
        rd.close();

a to skrypt php który ma odebrać dane:

<?php

$zmienna=$_POST['key1'];

echo "$zmienna";

$fp = fopen("dane.txt", "w");

fwrite($fp, $zmienna);

fclose($fp);

?>

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.