2009-04-28 12 views
2

Use-Case: eine einfache Bilddatei auf einen Server hochladen, die späten KundenBesserer Datei-Upload-Ansatz: HTTP-Post-Multipart oder HTTP-Put?

  1. Bezeichnen Sie ein FTP Server für den Job abrufen können.

  2. HTTP Put: Es kann direkt Dateien, ohne die Notwendigkeit einer Serverseite
    Komponente auf einen Server hochladen, um den Bytestrom zu behandeln.

  3. HTTP Post: Behandeln Sie den Bytestream von der serverseitigen Komponente.

+0

Das ist als würde man fragen „Papier oder Plastik“, ohne die Zwänge erklären Sie für die Lösung. – EricLaw

Antwort

0

PUT ist nur angemessen, wenn Sie die URL wissen, die Sie setzen.

Sie könnten auch tun:

4) POST zu erhalten, die eine URL, auf die Sie dann PUT die Datei.

bearbeiten: Wie erhalten Sie den HTTP-Server zu entscheiden, ob es OK ist, eine bestimmte PUT-Anfrage zu akzeptieren?

+0

läßt vermuten, die Seite, von wo aus man würde ‚setzen‘ Dateien nur von einer Admin-Sitzung angemeldet zugegriffen werden konnte, so dass jeder "setzen Antrag förderfähig. –

+0

Hmmm ... die Seite "von"? HTTP-Anfragen sind technisch zustandslos und können aus heiterem Himmel ankommen. Sind Sie auf Cookies für Authentifizierungstoken angewiesen? –

+0

Auch: PUT auf eine bestimmte URL wird (zumindest von einem RESTful Standpunkt) Inhalt überschreiben, der bereits dort ist. Ich bin nicht sicher, wie Apache und andere Server dies standardmäßig behandeln, aber wenn Ihr Client vorhandenen Inhalt nicht überschreiben will, muss er zuerst prüfen, ob dort etwas existiert. –

0

Was ich in der Regel tun (via PHP) ist HTTP POST.

Und beschäftigen PHP move_uploaded_file(), um es zu dem gewünschten Ziel zu bekommen.

1

Ich denke, PUT auf einer öffentlichen Website sicher verwenden erfordert mehr Aufwand als POST (und wird weniger häufig getan) aufgrund möglicher Sicherheitsprobleme. Siehe http://bitworking.org/news/PUT_SaferOrDangerous.

OTOH, ich denke, es gibt viele Ressourcen für das sichere Hochladen von Dateien mit POST und überprüfen sie im serverseitigen Skript, und das ist die üblichere Praxis.