2013-09-27 6 views
2

Я делаю проверку на стороне сервера для загруженных файлов. Не каждый файл, который делает его на сервере, сохраняется. Как я могу отображать/запускать ошибку в файлах, которые не были успешно сохранены на сервере. Я пытался добавить функцию сервера санкционирования, но не могу понять, как это сделать ... Пожалуйста, помогитеПроверка на стороне сервера DropZone.js

    this.on("successmultiple", function (file, successResponse) { 
         uploadResult = eval(successResponse); 
         toastr.options.positionClass = "toast-bottom-right"; 
         var ErrorMessage = ""; 
         for (var i = 0; i < uploadResult.ResultList.length; i++) { 
          var result = uploadResult.ResultList[i]; 
          if (result.IsSuccessful === "True") { 
           toastr.success(result.Message); 
           if (hdnFileIDList !== "") 
            hdnFileIDList = hdnFileIDList + "|" + result.ID; 
           else 
            hdnFileIDList = result.ID 
          } 
          else { 
           //-- trigger dropzone error 
           toastr.warning(result.Message); 
           //this.ValidationError(file, result.Message); 
           file.accepted = false; 
           file.status = Dropzone.ERROR; 
           dropzone.serverError(file, result.Message); 
           //dropzone.emit("errormultiple", file, result.Message); 
          }         
         } 
         $("#<%=hdnSharedFileObjNewFileIDList.clientID%>").val(hdnFileIDList); 
        }); 

ответ

3

решить мою проблему, добавив следующий код в Dropzone.js затем вызвать его из моего «successmultiple «событие, когда я вижу и ошибку в моем возвращенном JSON с сервера.

Dropzone.prototype.serverError = function (file, message) { 
       file.accepted = false; 
       file.status = Dropzone.ERROR; 
       return this._errorProcessing(file, message); 
      }; 
0

кому-либо еще, что высадились здесь после того, как в поисках решения этой проблемы: есть довольно простой и элегантный способ справиться с этим, не вдаваясь в кишках Dropzone. Если проверка на стороне сервера завершается неудачно, верните код состояния 400 (неудачный запрос) и включите сообщение об ошибке как jsonResponse.

После этого вы можете обработать ответ с чем-то вроде следующего кода в конфигурации инициализации вашего Dropzone (при условии, вы отправляете сообщение об ошибке, как «ValidationMessage»):

this.on("error", function (file, jsonResponse) { 
    var errorMessage = "Could not upload document: "; 
    if (jsonResponse["ValidationMessage"] != null) { 
     errorMessage += jsonResponse["ValidationMessage"]; 
    } else { 
     errorMessage += "unknown error"; 
    } 
    alert(errorMessage); 
}); 

Файл будет иметь большой красный X на нем, как обычная Dropzone неудачная загрузка.

Это решение предназначено для одиночной загрузки, а не для нескольких, но одна и та же идея должна работать для нескольких.

Смежные вопросы