2016-07-10 5 views
0

В моем приложении, когда конечная точка завершения chunking возвращает JSON, например {"error": "reason..."} (например, сервер не смог вернуть куски вместе), событие onError не является называется.Как поднять onError из конечной точки успешного завершения в Fine-uploader

Для уточнения, onError Событие : называется, если отдельные куски терпят неудачу. Это окончательный запрос успеха, с которым у меня возникают проблемы.

Я не уверен, что мне не хватает. Должен ли я обращаться с этим другим способом?

Моя конфигурация ниже. Заранее спасибо!

var uploader = $('#fine-uploader').fineUploader({ 
     template: 'qq-template', 
     debug: true, 
     callbacks: { 
      onAllComplete: function(succeeded, failed) { 
       $('#doclib_tree').jstree(true).refresh() 
       if (failed.length > 0) { 
        alert("Error: Some files were not uploaded"); 
       } else { 
        if (succeeded.length > 0) { 
         alert("Successfully uploaded " + succeeded.length + " file(s)"); 
        } 
        this.reset(); 
        toggle_upload(); 
       } 
      }, 
      onError: function(id, name, errorReason, xhrOrXdr) { 
       alert("Error uploading " + name + ". Reason: " + errorReason) 
      }, 
      onSubmit: function(id, name) { 
       var promise = new qq.Promise(); 
       var dest = document.getElementById('dest_label').innerHTML.replace(/ > /g, "/") 
       $.ajax({ 
        'type': 'POST', 
        'async': false, 
        'url': "/documents/exists" , 
        'data': { 
         'parents' : get_path(dest), 
         'name': name, 
        }, 
        'success': function(data, textStatus, jqHXR) { 
         if (check_session(data)) { 
          promise.failure(); 
         } else { 
          if (confirm("The file '" + dest + "/" + name + "' already exists. Replace?")) 
           promise.success(); 
          else 
           promise.failure(); 
         } 
        }, 
        'error': function(jqHXR, textStatus, errorThrown) { 
         promise.success(); 
        } 
       }); 
       return promise; 
      }, 
     }, 
     chunking: { 
      enabled: true, 
      partSize: 20000000, // 20MB 
      success: { 
       endpoint: "documents/upload?success=1", 
      } 
     }, 
     resume: { 
      enabled: true, 
      recordsExpireIn: 1, // 1 day 
     }, 
     request: { 
      endpoint: "/documents/upload", 
     }, 
     autoUpload: true 
    }); 
+0

Является ли файл фактически помечен как неудачный в пользовательском интерфейсе, или это не работает? –

+0

Загрузка считается успешной в пользовательском интерфейсе. Однако, если конечная точка chunking-success возвращает 502 или недействительный JSON, тогда событие onError _does_ fire и файл помечен как сбой. –

ответ

0

Из документации в разделе успеха разделения на порции:

Для успешных ответов, вы можете вернуть пустое тело со статусом 200-204. Любой другой код состояния определяется как сбой.

Другими словами, чтобы указать отказ, вы должны вернуть код состояния, который указывает недостаточность. Выберите наиболее подходящий код состояния с учетом контекста ошибки. В этот момент Fine Uploader должен определить, что файл каким-то образом сработал, и ваш обработчик onError будет вызван с возвращаемым вашим сервером error.

+0

Это работает. Спасибо за указание на это! –

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

  • Нет связанных вопросов^_^