2010-12-30 22 views
3

Ich habe ein paar Bilder, die ich auf meinen Server hochladen möchte. Die Client-Seite ist in Java geschrieben, und ich werde eine HTTP-Post-Anfrage machen, um Bilder hochzuladen. Muss ich serverseitigen Code schreiben, um die HTTP-Post-Anfrage zu bearbeiten? Wenn ja, wo finde ich einige Beispiele? Der Server unterstützt PHP und Tomcat.Bilder auf Server hochladen

+0

PHP Referenz: http://php.net/manual/en/features.file-upload.php Vielleicht möchten Sie jedoch etwas mehr Details hinzufügen - Sie sagen nicht, was Sie mit den Uploads planen und ob eine Authentifizierung erforderlich ist –

+1

Dies wird http://stackoverflow.com/questions/1067655/how helfen -upload-a-file-using-java-httpclient-library-working-with-php-komisch-pro –

+0

@pekka Ich habe eine Android-App und ich lade die Bilder des Benutzers auf meinen Server, damit sie sehen können sie online. Alle Bilder werden im öffentlichen Ordner gespeichert. Der Server befindet sich momentan nicht hinter einer Authentifizierung. – Raunak

Antwort

1

Es ist sehr einfach in Java zu implementieren. Sie müssen HTTP-Servlet implementieren, das die doPost() -Methode überschreibt, die aus dem aus der HTTP-Anforderung erhaltenen Eingabestream liest und in den Datei-Ausgabestream schreibt.

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
    InputStream in = req.getInputStream(); 
    OutputStream out = new FileOutputStream("myfile.jpg"); 
    IOUtils.copy(in, out); 
    out.flush(); 
    out.close(); 
} 

IOUtils ist ein Dienstprogramm Calss von Jakarta Commons. Wenn Sie möchten, hier nicht enthalten diese Bibliothek in Ihren Klassenpfad ist der Quellcode von copy() Methode:

protected static long copy(InputStream input, OutputStream output) 
     throws IOException { 
    byte[] buffer = new byte[4096]; 
    long count = 0L; 
    int n = 0; 
    while (-1 != (n = input.read(buffer))) { 
     output.write(buffer, 0, n); 
     count += n; 
    } 
    return count; 
}