Следующая проблема возникла при использовании Firefox v73 в Windows 7:
В моем коде я использую многофайловую сборку в html для загрузки до 100 файлов:
<input type="file" id="files" name="files" multiple>
Файлы будут отправлены в REST-API, который затем обрабатывает их. Когда я выбираю один файл (в проводнике файлов), который используется в настоящее время, я получаю сообщение об ошибке (вероятно, по окну), которое говорит мне, что файл не может быть выбран, потому что он используется. Если я пытаюсь выбрать несколько файлов, которые содержат один или несколько используемых файлов, у меня не возникает никаких ошибок, но загрузка останавливается при достижении используемого файла и в ожидании выпуска файла. Это приводит к просьбе подождать таймаут (в моем случае это 1 минута).
Есть ли возможность поймать проблему (в файле использования), прежде чем пытаться загрузить файлы?
PS: я попробовал то же самое в Chrome, и он возвращает ошибку перед отправкой запроса в REST-API.
источник
Ответы:
Это звучит как проблема ОС.
Что-то блокирует доступ к вашему файлу, и это требует исправления на вашей стороне.
Я сомневаюсь, что это будет распространенная проблема, и довольно сложно создать решение, не сталкиваясь с той же проблемой, но одну вещь, которую вы можете попробовать, - это прочитать ваши файлы перед их отправкой. Это можно сделать довольно удобно с
Blob.prototype.arrayBuffer
метода, который может быть заполнен.Чтобы избежать большого количества операций ввода-вывода, вы можете даже попытаться прочитать только небольшую его часть, благодаря
Blob.prototype.slice()
методу.источник
Чтобы выбрать несколько файлов, почему вы не используете https://github.com/blueimp/jQuery-File-Upload
источник