2012-05-23 3 views
5

У меня есть экземпляр plupload на основе пользовательского примера с сайта на месте, он работает безупречно, за исключением отображения сообщений об ошибках, которые поступают из сценария загрузки на стороне сервера (upload.php из примеров папка в загрузке).plUpload - ошибки на стороне сервера не отображаются

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

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

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

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

Спасибо,

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

нм, ответил на мой собственный вопрос ... переполнение стека не позволил бы мне поставить свой ответ, так что вы можете найти свой ответ здесь - http://www.plupload.com/punbb/viewtopic .php? id = 1804 – flexage

ответ

10

А вот ответ, который вы связаны с:

Н.М., ответил на мой собственный вопрос ...

Кажется, мой plUpload экземпляр сбрасывает ответ сервера, который представляет собой строку JSON в объект JS, к которому можно получить доступ через Событие «FileUploaded».

Это пример кода для всех, кому этот ответ нужен.

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

Спасибо, что разместили это для меня;) – flexage

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