javascript dropzone.js

javascript - ¿Cómo invocar un error desde la respuesta del servidor(JSON) en Dropzone JS?



dropzone.js (4)

Tengo un cargador que rechaza la carga de los usuarios cuando exceden su cuota. La respuesta está en JSON y es como sigue:

{msg: "Upload limit reached", status: "error", code: "403"}

Las opciones de Dropzone JS son las siguientes:

Dropzone.options.uploadDropzone = { paramName: "file1", maxFilesize: 200, maxThumbnailFilesize: 10, success: function(file, response){ ???? } };

¿Qué debo hacer con la respuesta para mostrar un error a mis usuarios en el cargador?


Dropzone ha construido en la detección de errores. Solo haz esto:

mydropzone = new Dropzone("#mydropzone",{ url: "/dropzone", addRemoveLinks : true, maxFilesize: 2.0, maxFiles: 100, error: function(file, response) { if($.type(response) === "string") var message = response; //dropzone sends it''s own error messages in string else var message = response.message; file.previewElement.classList.add("dz-error"); _ref = file.previewElement.querySelectorAll("[data-dz-errormessage]"); _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { node = _ref[_i]; _results.push(node.textContent = message); } return _results; } });


Puedes hacerlo así:

success: function(file, response, action) { // PHP server response if(response == ''success'') // Validate whatever you send from the server { this.defaultOptions.success(file); } else { this.defaultOptions.error(file, ''An error occurred!''); } }


bien lo siguiente funcionaría, solo extraiga de la fuente:

success: function(file, response){ if(response.code == 501){ // succeeded return file.previewElement.classList.add("dz-success"); // from source }else if (response.code == 403){ // error // below is from the source code too var node, _i, _len, _ref, _results; var message = response.msg // modify it to your error message file.previewElement.classList.add("dz-error"); _ref = file.previewElement.querySelectorAll("[data-dz-errormessage]"); _results = []; for (_i = 0, _len = _ref.length; _i < _len; _i++) { node = _ref[_i]; _results.push(node.textContent = message); } return _results; } }


en el lado de PHP:

header("HTTP/1.0 400 Bad Request"); echo "Error uploading file";

y en el lado de jQuery:

error: function(response){ alert(response.xhr.responseText); }