Как я могу определить во время загрузки файла, был ли файл перемещен или удален? - PullRequest
1 голос
/ 18 ноября 2011

У меня есть веб-страница ASP.NET MVC, которая имеет элемент управления загрузкой файлов. В редких случаях файл, на который ссылается пользователь, перемещается или удаляется в файловой системе до того, как пользователь инициирует публикацию на странице. В IE9 страница успешно публикуется, но ContentLength равно нулю (ожидается) и может обрабатываться на стороне сервера. Однако в Firefox я обнаружил, что действие POST никогда не достигает сервера.

Можно ли в любом случае обнаружить, что ссылка на файл все еще действительна до публикации страницы? Или способ обнаружить, что во время POST произошла ошибка на стороне клиента из-за перемещенного / удаленного файла?

1 Ответ

0 голосов
/ 29 ноября 2011

Используя просто input type = "file", у вас нет доступа, чтобы проверить, существует ли файл на самом деле, пока не будет предпринята попытка загрузки.Появляются некоторые новые функции, такие как FileReader , которые могут помочь по мере взросления браузеров (поскольку они доступны не во всех браузерах), которые должны сделать процесс загрузки намного более плавным (и упростить обнаружение этой ситуации).

Если вы используете процесс загрузки в стиле Ajax, вы можете сразу же начать загрузку, чтобы предотвратить возникновение проблемы.

Или, немного хакерски: одной из идей Firefox было бы добавить setTimeout в событие onsubmit, которое запускается через секунду ... и проверить, началась ли загрузка (запросив сервер с помощью Ajax длядействие / функция JsonResult, которая может быстро увидеть, началась ли загрузка и т. д.).Это немного грязно, так как вам нужно беспокоиться о проблемах синхронизации - и может быть излишним, просто чтобы справиться со случаями, когда это происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...