Das folgende Problem trat bei Verwendung von Firefox v73 unter Windows 7 auf:
In meinem Code verwende ich einen Multi-File-Picker in HTML, um bis zu 100 Dateien parallel hochzuladen:
<input type="file" id="files" name="files" multiple>
Die Dateien werden an eine REST-API gesendet, die sie anschließend verarbeitet. Wenn ich eine einzelne Datei (im Datei-Explorer) auswähle, die gerade verwendet wird, erhalte ich eine Fehlermeldung (wahrscheinlich per Fenster), die mir mitteilt, dass die Datei nicht ausgewählt werden kann, weil sie verwendet wird. Wenn ich versuche, mehrere Dateien auszuwählen, die eine oder mehrere verwendete Dateien enthalten, tritt kein Fehler auf, aber der Upload scheint anzuhalten, wenn die verwendete Datei erreicht ist und auf die Freigabe der Datei wartet. Dies führt zu der Aufforderung, auf eine Zeitüberschreitung zu warten (in meinem Fall 1 Minute).
Gibt es eine Option, um das Problem (in der verwendeten Datei) zu beheben, bevor Sie versuchen, die Dateien hochzuladen?
PS: Ich habe dasselbe in Chrome versucht und es wird ein Fehler zurückgegeben, bevor die Anforderung an die REST-API gesendet wird.
quelle
Antworten:
Das klingt nach einem Betriebssystemproblem.
Etwas blockiert den Zugriff auf Ihre Datei und dies erfordert eine Korrektur auf Ihrer Seite.
Ich bezweifle, dass dies ein häufiges Problem sein wird, und es ist ziemlich schwierig, eine Lösung zu erstellen, ohne dass das gleiche Problem auftritt. Sie können jedoch versuchen, Ihre Dateien zu lesen, bevor Sie sie senden. Dies kann sehr bequem mit einer
Blob.prototype.arrayBuffer
Methode durchgeführt werden, die polygefüllt werden kann.Um viele E / A-Vorgänge zu vermeiden, können Sie dank der
Blob.prototype.slice()
Methode sogar versuchen, nur einen kleinen Teil davon zu lesen .quelle
Um mehrere Dateien auszuwählen, warum Sie https://github.com/blueimp/jQuery-File-Upload nicht verwenden
quelle