2012-05-23 26 views
5

Tôi có một trường hợp plupload dựa trên ví dụ tùy chỉnh từ trang web tại chỗ, nó đang làm việc một cách hoàn hảo, ngoại trừ cho việc hiển thị thông báo lỗi mà đến từ kịch bản phía máy chủ tải lên (upload.php từ các ví dụ trong thư mục tải xuống).plUpload - Lỗi Server Side Không Hiển thị

Thông báo lỗi cục bộ đang được hiển thị, ví dụ: nếu tôi cố gắng tải lên loại tệp đã bị hạn chế, tôi nhận được thông báo lỗi mà tôi đang mong đợi, tuy nhiên, các thông báo phía máy chủ sẽ không được hiển thị.

Tôi biết file upload.php được kích hoạt đúng cách như cập nhật của tôi được xử lý thành công, và tôi đã thiết lập một chức năng ngủ cũng để xác minh các tập tin được yêu cầu. Vào phút tôi đã chỉ đơn giản là đặt để dòng ở đầu upload.php tôi để hỗ trợ gỡ lỗi mà chỉ đơn giản ngủ trong 10 giây và trả về một thông báo lỗi, điều này vẫn không hoạt động.

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

Các javascript Tôi đang sử dụng được bao gồm dưới đây, bất kỳ sự giúp đỡ các bạn có thể cung cấp sẽ được đánh giá rất nhiều như tôi đã chi tiêu quá nhiều thời gian về vấn đề này đã và vấn đề này đang nắm giữ tôi lại từ việc có thể để đẩy mã của tôi sống .

Cảm ơn,

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, đã trả lời câu hỏi của riêng tôi ... stack overflow sẽ không cho phép tôi đưa câu trả lời của riêng tôi, vì vậy bạn có thể tìm thấy câu trả lời của tôi ở đây - http://www.plupload.com/punbb/viewtopic .php? id = 1804 – flexage

Trả lời

10

Và đây là câu trả lời bạn liên quan đến:

NM, trả lời câu hỏi của riêng tôi ...

Dường plUpload của tôi Ví dụ làm giảm phản ứng máy chủ mà là một chuỗi JSON vào một đối tượng JS mà có thể được truy cập thông qua sự kiện "Đã tải lên tệp".

Đây là một ví dụ mã cho bất kỳ ai khác cần câu trả lời này.

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

Cảm ơn bạn đã đăng bài này cho tôi;) – flexage