Avatar billede bris Nybegynder
06. september 2007 - 10:43 Der er 7 kommentarer

Fil upload http

Kan man ikke uploade filer via http, uden at bruge et script på serversiden? Jeg har skrevet noget lignende.. Som ikke virker.. Sidder og overvejer om det er muligt, hvis man ikke har noget server side script..

try {
            File f = new File("C:\\rr.log");
            // if file exists
            str = new FileInputStream(f);
           
            url = new URL("http://10.10.93.216/");
            con = (HttpURLConnection) url.openConnection();
            con.setRequestMethod("POST");
            con.setDoOutput(true);

            con.connect();
            int code = con.getResponseCode();
            if ((code >= 200) && (code < 300)) {
                os = con.getOutputStream();
                int read;
                do {
                    read = str.read(arr);
                    if (read > 0) {
                        os.write(arr, 0, read);
                        os.flush();
                    }
                } while (read > 0);

            } else {
                System.out.println("Could not connect: "
                        + con.getResponseMessage()+ ", code: "+con.getResponseCode());
            }
           

        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
Avatar billede jakoba Nybegynder
06. september 2007 - 11:34 #1
Der skal helst være lidt kontrol på serversiden med hvad der uploades og hvem der uploader. Ellers kan jo hvemsomhelst bruge din kode til at upoade virus og det der er værre.
Så jeg vil klart anbefale at du sørger for at have noget programmering serverside til at modtage/afvise de uploadede filer.
Avatar billede arne_v Ekspert
06. september 2007 - 12:52 #2
Enten et server-side script (og POST) eller en web server som understøtter PUT.
Avatar billede bris Nybegynder
06. september 2007 - 12:52 #3
Tak for dit svar. Jeg arbejder ikke på en almindelig webserver, men et andet stykke hw, som ikke kommer på internettet. Så det er slet ikke i mine overvejelser.. Spørgsmålet er også, om det kan lade sig at gøre, og hvordan? (ikke for at være flabet)
Avatar billede arne_v Ekspert
06. september 2007 - 12:52 #4
Og med PUT skal der nok laves HTTP authentication !
Avatar billede bris Nybegynder
07. september 2007 - 08:28 #5
Hvis min webserver understøttede PUT, ville det ovenstående kode så virke? Jeg ved godt du skriver også, at der nok skal laves HTTP authentication, men det tror jeg ikke er tilfældet. (Man ville nok lave det, men ikke lige i mit tilfælde)
Kan du skrive noget kode, som bruger PUT til at uploade filer?
Avatar billede arne_v Ekspert
08. september 2007 - 02:18 #6
Jeg vil tro at du kan lave en PUT hvis du ændrer:

con.setRequestMethod("POST");

til:

con.setRequestMethod("PUT");
Avatar billede bris Nybegynder
10. september 2007 - 13:56 #7
Der får jeg en:

Page not found, code: 400

Og det gør jeg også, selvom jeg skriver et filnavn efter ip-adressen..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester