2015-08-26 2 views
0

Я использую Fine Uploader для загрузки нескольких файлов на сервер.проверить файл md5 перед началом загрузки

Я хочу отправить MD5-хэш каждого файла на сервер перед загрузкой и если файл существует на сервере, загрузка файла будет прекращена.

Я использую библиотеку MD5 «sparkMD5» вместе с методом Fine Uploader setParams, чтобы добавить хэш MD5 в качестве параметра для каждого файла.

Моя проблема - вычисление MD5 некоторых файлов может занять несколько секунд. Мне нужно подождать, пока MD5 файла не будет рассчитан и отправлен на сервер. Я возвращаю обещание, но оно блокирует добавление файла в список файлов (после того, как пользователь выберет файл).

onSubmit: function(id){ 
    var file = this.getFile(id), promise = new qq.Promise(); 
    calculate_md5_then_check_with_server_for_duplication(id, file); 
    return promise; 
} 

ответ

1

Fine Uploader нуждается в разрешенное значение из onSubmit обработчика для того, чтобы правильно обработать файл. По умолчанию файл будет автоматически загружен после завершения этого обратного вызова. Также возможно, что результат обработчика будет препятствовать принятию файла. Таким образом, сначала мигание файла, только для его удаления может быть немного раздражающим. Вот почему файл не отображается в пользовательском интерфейсе, пока ваше обещание не будет успешно разрешено.

Если вы хотите дать пользователю некоторое представление о ходе расчета MD5, вы можете сделать это, используя любой пользовательский интерфейс, подходящий для вашего приложения.

+0

спасибо. я понял :) –