2010-10-31 15 views
5

Il mio codice di intestazione:plugin jquery 'uploadify' - Come restituire una risposta dallo script di caricamento?

$(document).ready(function() { 
    $('#sampleFile').uploadify({ 
     'uploader': 'include/uploadify/uploadify.swf', 
     'script': 'add_list.php', 
     'scriptData': {'mode': 'upload'}, 
     'fileDataName': 'sampleFile', 
     'folder': '/work/avais/bizlists/lists', 
     'cancelImg': 'include/uploadify/cancel.png', 
     'queueID': 'sampleQueue' 
    }); 
}); 

per quanto ne so tutto quello che posso fare nel file "add_list.php" è terminare il processo di caricamento via spostando il file nella directory finale; Non penso che ci sia un modo in cui posso "restituire qualcosa" come un errore, giusto?

Sarebbe bene se potessi usare questo file anche per disabilitare determinati caratteri o restituire un errore se ci fosse qualche tipo di problema, ma non credo ci sia?

Immagino che potrei semplicemente eliminare tutti i caratteri cattivi, ma sarebbe utile sapere se posso restituire una risposta in qualche modo?

+0

possibile duplicato di [Uploadify: mostra messaggio di errore dalla risposta HTTP] (http://stackoverflow.com/questions/1877644/uploadify-show-error-message-from-http-response) –

risposta

7

È possibile aggiungere alcuni gestori di eventi per lo script di upload per controllare l'azione completa e per l'errore

$('#sampleFile').uploadify({ 
     'uploader': 'include/uploadify/uploadify.swf', 
     'script': 'add_list.php', 
     'scriptData': {'mode': 'upload'}, 
     'fileDataName': 'sampleFile', 
     'folder': '/work/avais/bizlists/lists', 
     'cancelImg': 'include/uploadify/cancel.png', 
     'queueID': 'sampleQueue' 

    onComplete: function (event, queueID, fileObj, response, data) { 
     // A function that triggers when a file upload has completed. The default 
     // function removes the file queue item from the upload queue. The 
     // default function will not trigger if the value of your custom 
     // function returns false. 
     // Parameters 
     // event: The event object. 
     // queueID: The unique identifier of the file that was completed. 
     // fileObj: An object containing details about the file that was selected. 
     // response: The data sent back from the server. 
     // data: Details about the file queue. 
    }, 

    onError: function (event, queueID, fileObj, errorObj) { 
     // A function that triggers when an error occurs during the upload process. 
     // The default event handler attaches an error message to the queue item 
     // returning the error and changes it's queue item container to red. 
     // Parameters 
     // event: The event object. 
     // queueID: The unique identifier of the file that was errored. 
     // fileObj: An object containing details about the file that was selected. 
     // errorObj: An object containing details about the error returned. 
    } 

}); 

Così, mentre la funzione di onComplete avrà la risposta rimandata dallo script lato server, è possibile tornare una risposta al client e quindi analizzare la risposta all'interno del gestore eventi.

Controllare il Uploadify documentation per maggiori dettagli

Speranza che aiuta

+0

Grazie - sapevo quei gestori, sebbene non sapessero che la funzione onComplete restituiva il risultato allo script lato server. :) – Brett

1

Tutto ciò che fa eco nel file add_list.php viene inviato alla funzione onComplete come risposta. Così si potrebbe effettuare le seguenti operazioni:

$(document).ready(function() { 
$('#sampleFile').uploadify({ 
    'uploader': 'include/uploadify/uploadify.swf', 
    'script': 'add_list.php', 
    'scriptData': {'mode': 'upload'}, 
    'fileDataName': 'sampleFile', 
    'folder': '/work/avais/bizlists/lists', 
    'cancelImg': 'include/uploadify/cancel.png', 
    'queueID': 'sampleQueue', 
    'onComplete' : function(event,ID,fileObj,response,data) { 
     alert(response); 
     } 
    }); 
}); 
+0

Grazie mille per l'esempio! :) – Brett

0

Se si desidera che il nome del file, si "deve" utilizzare (il metodo corretto) fileObj.name:

$(document).ready(function() { 
$('#sampleFile').uploadify({ 
    'uploader': 'include/uploadify/uploadify.swf', 
    'script': 'add_list.php', 
    'scriptData': {'mode': 'upload'}, 
    'fileDataName': 'sampleFile', 
    'folder': '/work/avais/bizlists/lists', 
    'cancelImg': 'include/uploadify/cancel.png', 
    'queueID': 'sampleQueue', 
    'onComplete' : function(event,ID,fileObj,response,data) { 
     alert(fileObj.name); 
     } 
    }); 
}); 
0

Per tutti coloro che possono incorrere in questo in futuro. Mi ci è voluto un po 'per capire come trasferire i miei dati dal server.

La versione corrente di uploadify in questa scrittura è 3.2 e si sono probabilmente alla ricerca per l'evento onUploadSuccess: http://www.uploadify.com/documentation/uploadify/onuploadsuccess/

che vi permetterà di ottenere i dati restituito dal server.

Problemi correlati