Gibt es eine Möglichkeit, die Dateigröße zu ermitteln, bevor die Datei mit AJAX / PHP im Änderungsereignis der Eingabedatei hochgeladen wird?
javascript
jquery
ajax
file-upload
filesize
Nisanth Kumar
quelle
quelle
Antworten:
Für den HTML-Balg
Versuche Folgendes:
Siehe folgenden Thread:
Wie überprüfe ich die Größe der Dateieingabe mit jQuery?
quelle
FileList.files
um ein Array vonFile
Objekten, bei dem es sich um eine Erweiterung von handeltGlob
. Und nach dem spec ,Glob
definiert in der Tat diesize
Eigenschaft als die Anzahl der Bytes (0 für eine leere Datei). Also ja, das Ergebnis ist in Bytes .Arbeit an IE und FF
quelle
Hier ist ein einfaches Beispiel, wie Sie die Größe einer Datei vor dem Hochladen ermitteln können. Es verwendet jQuery, um zu erkennen, wann immer der Inhalt hinzugefügt oder geändert wird, aber Sie können trotzdem
files[0].size
ohne jQuery abrufen.quelle
Ich hatte das gleiche Problem und es scheint, als hätten wir keine genaue Lösung gefunden. Hoffe das kann anderen Menschen helfen.
Nachdem ich mir etwas Zeit genommen hatte, fand ich endlich die Antwort. Dies ist mein Code, um Dateien mit jQuery anzuhängen:
Dies ist nur der Beispielcode zum Abrufen der Dateigröße. Wenn Sie andere Dinge tun möchten, können Sie den Code jederzeit ändern, um Ihre Anforderungen zu erfüllen.
quelle
Beste Lösung für alle Browser;)
von http://www.dotnet-tricks.com/Tutorial/jquery/HHLN180712-Get-file-size-before-upload-using-jquery.html
UPDATE: Mit dieser Funktion prüfen wir, ob es sich um einen IE-Browser handelt oder nicht
quelle
quelle
Browser mit HTML5-Unterstützung verfügen über die Eigenschaft files für den Eingabetyp. Dies funktioniert natürlich nicht in älteren IE-Versionen.
quelle
Die Lösung von ucefkh funktionierte am besten, aber da $ .browser in jQuery 1.91 veraltet war, musste geändert werden, um navigator.userAgent zu verwenden:
quelle
Sie müssen eine Ajax-HEAD-Anforderung ausführen, um die Dateigröße zu erhalten. mit jquery ist es so etwas
quelle
Bitte nicht verwenden,
ActiveX
da die Wahrscheinlichkeit groß ist, dass im Internet Explorer eine beängstigende Warnmeldung angezeigt wird, die Ihre Benutzer abschreckt.Wenn jemand diese Prüfung implementieren möchte, sollte er sich nur auf das FileList- Objekt verlassen, das in modernen Browsern verfügbar ist, und sich nur für ältere Browser auf serverseitige Prüfungen verlassen ( progressive Verbesserung ).
quelle
Sie können die PHP-Dateigrößenfunktion verwenden. Überprüfen Sie beim Hochladen mit Ajax zuerst die Dateigröße, indem Sie eine Anfrage an eine Ajax-Anfrage an ein PHP-Skript senden, die die Dateigröße überprüft und den Wert zurückgibt.
quelle
Sie können die HTML5-Datei-API verwenden: http://www.html5rocks.com/en/tutorials/file/dndfiles/
Sie sollten jedoch immer einen Fallback für PHP (oder eine andere von Ihnen verwendete Backend-Sprache) für ältere Browser haben.
quelle
Persönlich würde ich sagen, dass die Antwort von Web World angesichts der HTML-Standards heute die beste ist. Wenn Sie IE <10 unterstützen müssen, müssen Sie eine Form von ActiveX verwenden. Ich würde die Empfehlungen vermeiden, die das Codieren gegen Scripting.FileSystemObject oder das direkte Instanziieren von ActiveX beinhalten.
In diesem Fall hatte ich Erfolg mit JS-Bibliotheken von Drittanbietern wie plupload, die so konfiguriert werden können, dass HTML5-APIs oder Flash / Silverlight-Steuerelemente zum Auffüllen von Browsern verwendet werden, die diese nicht unterstützen. Plupload verfügt über eine clientseitige API zum Überprüfen der Dateigröße, die im IE <10 funktioniert.
quelle