2012-05-23 15 views
5

Tengo una instancia de plupload basada en el ejemplo personalizado del sitio web instalado, funciona perfectamente, excepto para mostrar los mensajes de error que provienen del script de carga del servidor (upload.php de los ejemplos carpeta en la descarga).plUpload - Errores del lado del servidor que no muestran

Se muestran mensajes de error local, por ejemplo, si intento cargar un tipo de archivo que ha sido restringido, recibo el mensaje de error que esperaba, sin embargo, los mensajes del lado del servidor simplemente no se muestran.

Sé que el archivo upload.php se desencadena correctamente ya que mis cargas se procesan correctamente, y he configurado una función de suspensión para verificar también que se solicita el archivo. En el momento en que simplemente coloqué líneas en la parte superior de mi upload.php para ayudar con la depuración, que simplemente duerme durante 10 segundos y devuelve un mensaje de error, esto todavía no funciona.

upload.php 
    sleep(10); 
    die('{"jsonrpc" : "2.0", "error" : {"code": 500, "message": "THIS IS AN ERROR."}, "id" : "id"}'); 
...(Rest of normal upload.php file)... 

El javascript estoy usando se incluye a continuación, cualquier ayuda ustedes podrían dar sería muy apreciado como lo he hecho pasar demasiado tiempo en esto ya y el tema me está frenando de ser capaz de empujar mi código en directo .

Gracias,

Alex

// Fanart 
$(function() { 
var fanart_uploader = new plupload.Uploader({ 
    runtimes : 'html5,flash,html4', 
    browse_button : 'fanart_pickfiles', 
    container : 'fanart_container', 
    drop_element : 'fanart_drop', 
    chunk_size : '1mb', 
    max_file_size : '8mb', 
    url : '/upload.php?gameid=<?= $gameid ?>&arttype=fanart', 
    flash_swf_url : '/js/plupload/js/plupload.flash.swf', 
    silverlight_xap_url : '/js/plupload/js/plupload.silverlight.xap', 
    filters : [ 
     {title : "Image files", extensions : "jpg,png"}, 
    ] 
}); 

fanart_uploader.bind('Init', function(up, params) { 
    $('#fanart_runtime').html("You are using " + params.runtime); 
}); 

$('#fanart_uploadfiles').click(function(e) { 
    fanart_uploader.start(); 
    e.preventDefault(); 
}); 

fanart_uploader.init(); 

fanart_uploader.bind('FilesAdded', function(up, files) { 
    $.each(files, function(i, file) { 
     $('#fanart_filelist').append(
      '<div style="padding: 4px; margin: 3px; border: 1px dotted #fff; border-radius: 6px; background-color: #333;" id="' + file.id + '"><img class="tick" src=\"<?= $baseurl ?>/images/common/icons/tick_16.png\" style=\"display: none; vertical-align: -2px;\" />' + 
      file.name + ' <em>(' + plupload.formatSize(file.size) + ')</em> <div style=\"margin: auto; margin-top: 3px; width: 200px; height: 20px; border: 1px solid #fff; border-radius: 6px; background-color: #222;\"><div class="progressbar" style=\"width: 0px; height: 16px; padding: 2px 0px; background-color: #ccc; border-radius: 6px; text-align: center;\"><b style="font-size: 16px; color: #222;"></b></div></div>' + 
     '</div>'); 
    }); 

    up.refresh(); // Reposition Flash/Silverlight 
}); 

fanart_uploader.bind('UploadProgress', function(up, file) { 
    $('#' + file.id + " b").html(file.percent + "%"); 
    $('#' + file.id + " .progressbar").css("width", (file.percent * 2)); 
}); 

fanart_uploader.bind('Error', function(up, err) { 
    $('#fanart_filelist').append("<div>Error: " + err.code + 
     ", Message: " + err.message + 
     (err.file ? ", File: " + err.file.name : "") + 
     "</div>" 
    ); 

    up.refresh(); // Reposition Flash/Silverlight 
}); 

fanart_uploader.bind('FileUploaded', function(up, file) { 
    $('#' + file.id + " .tick").show(); 
}); 
}); 
+0

nm, respondió a mi propia pregunta ... desbordamiento de pila no me dejó poner mi propia respuesta, por lo que puede encontrar mi respuesta aquí - http://www.plupload.com/punbb/viewtopic .php? id = 1804 – flexage

Respuesta

10

Y aquí está la respuesta se ha vinculado a:

NM, respondió a mi propia pregunta ...

Parece que mi plUpload instancia alivia la respuesta del servidor que es una cadena JSON en un objeto JS al que se puede acceder a través el evento "FileUploaded".

Este es un ejemplo de código para cualquier otra persona que necesite esta respuesta.

fanart_uploader.bind('FileUploaded', function(up, file, info) { 
    $('#' + file.id + " .tick").show(); 
    printObject(info); 

    var response = jQuery.parseJSON(info.response); 

    alert(response.error.message); 
}); 
+0

Gracias por publicar esto para mí;) – flexage

Cuestiones relacionadas