2014-11-06 12 views
10

Prima di tutto lascia che ti dica che ho già cercato alcune risposte, e mentre mi ha aiutato un po ', i miei problemi principali rimangono irrisolti.JQuery uploader di file blueimp, Token/Carattere inatteso

ho usato il file uploader (versione 9.8.0) @http://blueimp.github.io/jQuery-File-Upload/

(primo problema)
Tutto sembra funzionare benissimo fino a che avviare il caricamento. Al termine del caricamento, viene indicato il seguente errore per ogni immagine (anziché il messaggio "caricamento riuscito").

Su Google Chrome si dice: "SyntaxError: Unexpected gettone <"
su Mozilla FireF. dice: "SyntaxError: JSON.parse: carattere inatteso alla riga 1 colonna 1 dei dati JSON"

Ho cercato alcune soluzioni ma non riesco a capire come applicare queste soluzioni. E btw, aggiunge l'immagine, nonostante l'errore.

+0

aiutarmi per favore, qualcuno? – Jeremy23

+0

Posso sapere quale versione stai utilizzando php, ruby, node.js ............. – Bik

+0

Puoi per favore mostrare la risposta che ricevi dal server o condividere l'url. – Mitul

risposta

0

Questo mi è successo una volta. Forse è il permesso della cartella. Ho impostato il permesso server/php/file per leggere e scrivere e funziona.

0

È a causa del post_max_size e upload_max_filesize sono troppo piccoli e poiché utilizza un blob per inviare i dati del file genera questo errore. Li ho aumentati nel mio php.ini e ora funziona come un fascino

1

Molto probabilmente si sta provando a JSON.parse un server fornito messaggio di errore o altra risposta non JSON, e questo è probabilmente HTML, dato il primo carattere è soffocato su.

Vorrei aprire la console, ottenere la pagina per produrre l'errore, trovare la richiesta nella scheda Rete degli strumenti di sviluppo e controllare la scheda di risposta delle richieste di caricamento per vedere cosa viene effettivamente restituito .

Speriamo di vedere la risposta che ti porterà alla soluzione (come la correzione di un messaggio di errore) o una domanda più specifica che può essere posta.

9

Il metodo che si sta chiamando sta generando una pagina di errore con html (a partire da < e non può essere analizzata in JSON), se si guarda la scheda di rete nel browser.

Per esempio in Google Chrome:

  1. Aperto debugger: F12
  2. Vai alla scheda Rete
  3. Fate l'upload
  4. Si dovrebbe vedere la richiesta che è stata inviata nella scheda Rete
  5. Fare clic sulla richiesta di errore
  6. Ciò aprirà una nuova finestra con una scheda per la risposta dal server. Questa risposta sarà molto probabilmente una sorta di messaggio di eccezione.

Ho avuto un problema simile su ASP.Net MVC con un altro uploader, quando uno dei parametri è stato inviato come null e non era annullabile sul controller.

+0

Non capisco perché qualcuno ti abbia votato perché era esattamente quello che stava succedendo: il mio framework ha generato un errore HTML. – qwertzman

1

Ho risolto questo problema modificando url in main.js di file con index.php alla fine, in questo modo:

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

Ho avuto questo problema in PHP 5.6, ma non in PHP 5.3. I "risolto" il problema modificando il livello di segnalazione degli errori nel file di upload.php:

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

0

Questo è accaduto a me. Sto usando PHP su un server Linux. Ho trovato che c'erano effettivamente barre rovesciate "\" nel codice in 4 o 5 posti e stavano causando gli errori. Fare questo:

  1. Aprire la tua copia di /server/php/UploadHandler.php in un editor
  2. fare una ricerca per la barra rovesciata: \
  3. Nota ciascuna posizione del backslash.
  4. Se è dopo la parola "nuovo" e prima di una chiamata a un gestore è possibile rimuovere il backslash.

Verifica sulle linee 308, 790, 814, 816, 819, 822, 825, 828, 831, 836, 842, 895, 915, 973, 981 e 1058. Tutte le chiamate al Imagick(); sembra averne uno di fronte.

Ho eliminato tutti quei backslash e non è stato necessario disattivare la segnalazione degli errori.

Esempio: codice

Ricerca:

$file = new \stdClass(); 

Sostituire con:

$file = new stdClass(); 
Problemi correlati