2014-11-06 9 views
10

Po pierwsze, pozwólcie mi powiedzieć, że już szukałem odpowiedzi i chociaż trochę mi to pomogło, moje główne problemy pozostają nierozwiązane.Narzędzie do przesyłania plików jquery blueimp, nieoczekiwany token/postać

użyłem pliku uploader (wersja 9.8.0) @http://blueimp.github.io/jQuery-File-Upload/

(1st problemu)
Wszystko wydaje się działać poprawnie, dopóki nie rozpocząć ładowanie. Po zakończeniu przesyłania jest wyświetlany następujący komunikat o błędzie dla każdego obrazu (zamiast komunikatu "Przesyłanie powiodło się").

Na Google Chrome to mówi: "SyntaxError: Nieoczekiwany token <"
Mozilla FireF. jest napisane: "SyntaxError: JSON.parse: nieoczekiwany znak w wierszu 1 kolumny 1 danych JSON"

Przeszukałem niektóre rozwiązania, ale nie mogę wymyślić, jak zastosować te rozwiązania. I tak dalej, dodaje obraz mimo błędu.

+0

Pomóż mi proszę, kogo? – Jeremy23

+0

Czy mogę wiedzieć, której wersji używasz php, ruby, node.js ............. – Bik

+0

Czy możesz pokazać odpowiedź, którą otrzymujesz z serwera lub udostępniasz adres URL? – Mitul

Odpowiedz

0

To zdarzyło mi się raz. Może to jest pozwolenie na folder. Ustawiam uprawnienia serwera/php/plików do odczytu i zapisu i to działa.

0

Dzieje się tak dlatego, że post_max_size i upload_max_filesize są zbyt małe, a ponieważ używa pliku blob do wysyłania danych pliku, generuje ten błąd. Zwiększyłem ich w moim php.ini i teraz działam jak czar

1

Najprawdopodobniej próbujesz uzyskać JSON.parse komunikat o błędzie dostarczony przez serwer lub inną odpowiedź inną niż JSON, a jest to prawdopodobnie kod HTML, biorąc pod uwagę pierwszy znak, który zablokował.

Chciałbym otworzyć konsolę, uzyskać stronę, aby wygenerować błąd, znaleźć żądanie na karcie Sieć narzędzi deweloperskich i sprawdzić kartę odpowiedzi w żądaniach przesyłania, aby zobaczyć, co faktycznie jest zwracane .

Mam nadzieję, że zobaczenie odpowiedzi doprowadzi cię do rozwiązania (np. Naprawienie komunikatu o błędzie) lub bardziej szczegółowego pytania, które można zadać.

9

Metoda, którą wywołujesz, wyświetla stronę błędu w html (zaczynając od < i nie można jej przeanalizować w JSON), jeśli spojrzysz na kartę sieci w przeglądarce.

Na przykład w Google Chrome:

  1. Otwarte debugger: F12
  2. przejdź do Sieć zakładce
  3. Czy przesyłanie
  4. powinien pojawić się wniosek, który został wysłany w zakładce Network
  5. Kliknij na to żądanie błędu
  6. To otworzy nowe okno z zakładką odpowiedzi z serwera. Ta odpowiedź najprawdopodobniej będzie rodzajem komunikatu wyjątku.

Miałem podobny problem w ASP.Net MVC z innym przesyłającym, gdy jeden z parametrów został wysłany jako null i nie był zerowany na kontrolerze.

+0

Nie rozumiem, dlaczego ktoś Cię odrzucał, ponieważ tak właśnie się działo: moja struktura spowodowała błąd HTML. – qwertzman

1

I rozwiązać ten problem poprzez edycję adresu URL w main.js plików z index.php w końcu coś takiego:

// 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

miałem tego problemu w PHP 5.6, ale nie w PHP 5.3. I „rozwiązać” ten problem poprzez edycję poziom raportowania błędów w upload.php pliku:

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

0

Stało się to dla mnie również. Używam PHP na serwerze Linux. Zauważyłem, że w kodzie znajdowały się odwrotne ukośniki "\" w 4 lub 5 miejscach i powodowały błędy. Wykonaj:

  1. Otwórz kopię /server/php/UploadHandler.php w edytorze
  2. Do wyszukiwania dla backslash: \
  3. Uwaga każda lokalizacja backslash.
  4. Jeśli po słowie "nowy" i przed połączeniem z operatorem, możesz usunąć odwrotny ukośnik.

Sprawdź na liniach 308, 790, 814, 816, 819, 822, 825, 828, 831, 836, 842, 895, 915, 973, 981 i 1058. Wszystkie rozmowy na Imagick(); wydaje się, że ma się je przed sobą.

Usunąłem wszystkie te ukośniki odwrotne i nie było wymagane wyłączanie raportowania błędów.

Przykład: Kod

Znajdź:

$file = new \stdClass(); 

Replace with:

$file = new stdClass(); 
Powiązane problemy