2014-11-06 12 views
10

Trước tiên, hãy để tôi cho bạn biết rằng tôi đã tìm kiếm một số câu trả lời, và trong khi nó giúp tôi một chút, vấn đề chính của tôi vẫn chưa được giải quyết.Trình tải lên tệp jquery blueimp, Mã thông báo bất ngờ/Ký tự

tôi đã sử dụng các tập tin tải lên (Phiên bản 9.8.0) @http://blueimp.github.io/jQuery-File-Upload/

(1st vấn đề)
Tất cả mọi thứ dường như làm việc tốt cho đến khi tôi bắt đầu tải lên. Sau khi kết thúc tải lên, nó cho biết lỗi sau cho mỗi hình ảnh (thay vì thông báo "tải lên thành công").

Trên Google Chrome nó nói: "Lỗi Cú pháp: Bất ngờ thẻ <"
trên Mozilla FireF. nó nói: "SyntaxError: JSON.parse: ký tự không mong muốn ở dòng 1 cột 1 của dữ liệu JSON"

Tôi đã tìm kiếm một số giải pháp nhưng tôi không thể tìm ra cách áp dụng các giải pháp này. Và btw, nó thêm hình ảnh, bất chấp lỗi.

+0

Giúp tôi xin vui lòng, ai đó? – Jeremy23

+0

Tôi có thể biết phiên bản nào bạn đang sử dụng php, ruby, node.js ............. – Bik

+0

Bạn có thể vui lòng hiển thị phản hồi mà bạn nhận được từ máy chủ hoặc chia sẻ url của bạn hay không. – Mitul

Trả lời

0

Điều này đã xảy ra với tôi một lần. Có lẽ nó là sự cho phép thư mục. Tôi đặt quyền cho máy chủ/php/tệp để đọc và ghi và nó hoạt động.

0

Đó là vì post_max_size và upload_max_filesize quá nhỏ và vì nó sử dụng blob để gửi dữ liệu tệp mà nó tạo ra lỗi này. Tôi đã tăng chúng trong php.ini của mình và hiện hoạt động như một nét duyên dáng

1

Rất có thể bạn đang cố gắng JSON.parse thông báo lỗi do máy chủ cung cấp hoặc phản hồi không phải JSON khác, và đây có thể là HTML, do ký tự đầu tiên bị tắt.

Tôi muốn mở bảng điều khiển, nhận trang để tạo lỗi, tìm yêu cầu trong tab Mạng của công cụ dev và kiểm tra tab phản hồi của (các) yêu cầu tải lên để xem những gì thực sự được trả về .

Hy vọng rằng việc xem phản hồi sẽ dẫn bạn đến giải pháp (như sửa thông báo lỗi) hoặc câu hỏi cụ thể hơn có thể được hỏi.

9

Phương pháp bạn đang gọi đang ném trang lỗi bằng html (bắt đầu bằng < và không thể được phân tích cú pháp bằng JSON), nếu bạn xem tab mạng trong trình duyệt của mình.

Ví dụ trong Google Chrome:

  1. mở debugger: F12
  2. Tới mạng tab
  3. Làm upload
  4. Bạn sẽ thấy yêu cầu đã được gửi trong tab Mạng
  5. Nhấp vào yêu cầu lỗi đó
  6. Thao tác này sẽ mở một cửa sổ mới có tab cho phản hồi từ máy chủ. Phản ứng này rất có thể là một loại thông điệp ngoại lệ.

Tôi đã gặp sự cố tương tự trên ASP.Net MVC với trình tải lên khác, khi một trong các tham số được gửi dưới dạng null và không được vô hiệu hóa trên bộ điều khiển.

+0

Không hiểu tại sao một người nào đó bình chọn bạn vì đây chính xác là những gì đang diễn ra: khung của tôi đã ném một lỗi HTML. – qwertzman

1

tôi giải quyết vấn đề này bằng cách chỉnh sửa url trong main.js tập tin với index.php tại cuối cùng, như thế này:

// Initialize the jQuery File Upload widget: 
$('#fileupload').fileupload({ 
    // Uncomment the following to send cross-domain cookies: 
    //xhrFields: {withCredentials: true}, 
    url: 'imagegallery/server/php/index.php' 
}); 
-1

Tôi có vấn đề này trong php 5.6 nhưng không phải trong php 5.3. Tôi "giải quyết" vấn đề này bằng cách chỉnh sửa độ báo cáo lỗi trong file upload.php:

//error_reporting(E_ALL | E_STRICT); error_reporting(E_STRICT);

0

này xảy ra với tôi là tốt. Tôi đang sử dụng PHP trên một máy chủ Linux. Tôi thấy thực sự có dấu chéo ngược "\" trong mã ở 4 hoặc 5 địa điểm và chúng đã gây ra lỗi. Làm điều này:

  1. Mở bản sao của /server/php/UploadHandler.php trong một biên tập viên
  2. Thực hiện tìm kiếm cho xuyệc ngược: \
  3. Lưu ý mỗi vị trí của dấu chéo ngược.
  4. Nếu sau từ "mới" và trước khi gọi cho người xử lý, bạn có thể xóa dấu gạch chéo ngược.

Kiểm tra trên dây chuyền 308, 790, 814, 816, 819, 822, 825, 828, 831, 836, 842, 895, 915, 973, 981 và 1058. Tất cả các cuộc gọi đến Imagick(); dường như có một cái trước mặt họ.

Tôi đã xóa tất cả các dấu gạch chéo ngược đó và không bắt buộc phải tắt báo cáo lỗi.

Ví dụ:

tìm mã:

$file = new \stdClass(); 

Replace with:

$file = new stdClass(); 
Các vấn đề liên quan