Was ist der beste Weg zum hochladen einer Datei über einen HTTP-POST mit einem web-Formular?

StackOverflow https://stackoverflow.com/questions/11974

Frage

Im Grunde, etwas besseres als diese:

<input type="file" name="myfile" size="50">

Erste von alle, die browse die Schaltfläche sieht anders auf jedem browser.Im Gegensatz zu den submit Schaltfläche auf einem Formular, Sie haben zu kommen mit einigen hack-y Weg, um Stil es.

Zweitens, es gibt keine Fortschrittsanzeige zeigt Ihnen, wie viel der die Datei hochgeladen hat.Sie haben in der Regel zu implementieren, die eine Art von client-Seite Weg, um deaktivieren Sie mehrere übermittelt (z.B.ändern Sie die senden-Schaltfläche, um eine deaktivierte Taste zeigt die "Form der Einreichung...bitte warten.") oder blinkt eine riesige Warnung.

Gibt es irgendwelche guten Lösungen an, die nicht mit Flash oder Java?

Yaakov:Das Produkt sieht genau das, was ich Suche, aber die Kosten sind $1000 und die speziell für ASP.NET. Gibt es irgendwelche open-source-Projekten, die die gleiche oder ähnliche Funktionalität?

War es hilfreich?

Lösung

Datei-upload-Feldern ist, wo wir gerade bei, wenn Sie nicht wollen, um mit anderen Technologien wie Flash, Java oder ActiveX.

Mit einfachen HTML Sie sind ziemlich beschränkt auf die Erfahrung, die Sie beschrieben haben (keine Fortschrittsanzeige, double unterwirft, etc).Wenn Sie bereit sind, verwenden Sie einige von javascript, Sie können lösen einige der Probleme, die durch das feedback, dass der upload ist in Arbeit und auch zeigt den upload-Fortschritt (es ist ein hack, weil Sie nicht haben sollte, um eine volle Runde-Reise an den server und zurück, aber Sie funktioniert zumindest).

Wenn Sie sind bereit zu verwenden Flash (welcher so ziemlich überall und auf vielen Plattformen), können Sie überwinden so ziemlich alle diese Probleme.Ein schnelles googeln tauchte zwei Z Komponenten, die beide frei und open-source.Ich habe nie einer von Ihnen, aber Sie sehen gut aus.BTW, Flash ist nicht ohne seine Probleme, zum Beispiel, wenn Sie den multi-Datei-uploader für dia-Anteil, der browser ständig abstürzt, auf mich :-(

Wahrscheinlich die aktuell beste Lösung ist zu erkennen, dynamisch, wenn der Anwender über Flash, und wenn es der Fall ist, geben Sie Ihr die flash-version der uploader, und trotzdem macht es möglich zu wählen Sie die basic HTML ein.

HTH

Andere Tipps

Sie könnte haben einen Blick auf die Fancy Hochladen Skript.Obwohl es verwendet flash, es sieht immer noch toll aus.

Das problem hier ist, dass der Browser gezielt arbeiten zu blockieren alles, änderungen der grundlegenden Datei-upload-Eingabe Steuern.Sie können es nicht ändern mit javascript-Instanz.

Der Grund dafür ist die Sicherheit - wenn ich könnte-script ich aufbauen konnte eine Seite, wenn Sie es besucht, schickte mir verschiedene Dateien von Ihrer Festplatte.Nicht schön.

Es gibt verschiedene workarounds im moment, aber Sie sind verschiedene zwischen IE und FX (ich weiß nicht, über Safari, Opera, etc).

Schauen Sie, was http://www.gmail.com funktioniert in IE und FX wenn Ihnen daran etwas befestigen Sie eine e-mail.

Ich möchte sehen, dass Müll "Durchsuchen" - button - es sagt mir, dass ich bin ließ sich nichts unerwartetes in.

Es ist wahr, die Datei-upload-Kontrolle ist definitiv hinter der Zeit.Hoffentlich wird behandelt werden in Zukunft asp.net version.

Obwohl es kostet etwas Geld, ich habe Sie gefunden Telerik upload-Steuerelement haben alle Funktionen, die Sie suchen, einschließlich styling-und Fortschritts-updates ebenfalls optimiert Speicher für große uploads).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top