2010-10-31 3 views
5

Mon code d'en-tête:jquery plugin 'uploadify' - Comment renvoyer une réponse du script de téléchargement?

$(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' 
    }); 
}); 

AFAIK je peux faire dans le fichier « add_list.php » est terminer le processus de téléchargement hors en déplaçant le fichier à la finale dir; Je ne pense pas qu'il y ait moyen de «retourner quelque chose» comme une erreur, n'est-ce pas?

Ce serait bien si je pouvais utiliser ce fichier aussi pour interdire certains caractères ou retourner une erreur s'il y avait un problème, mais je ne pense pas qu'il y en ait?

Je suppose que je pourrais juste enlever les mauvais caractères, mais serait utile de savoir si je peux retourner une réponse en quelque sorte?

+0

duplication possible de [Charger: afficher le message d'erreur de la réponse HTTP] (http://stackoverflow.com/questions/1877644/uploadify-show-error-message-from-http-response) –

Répondre

7

Vous pouvez ajouter des gestionnaires d'événements à votre script de téléchargement pour vérifier l'action complète et d'erreur

$('#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. 
    } 

}); 

Donc, comme la fonction onComplete aura la réponse renvoyée par le script côté serveur, vous pouvez retourner une réponse au client, puis analyser la réponse dans le gestionnaire d'événements.

Vérifiez la Uploadify documentation pour plus de détails

Hope it helps

+0

Merci - Je connaissais Ces gestionnaires ne savaient pas que la fonction onComplete renvoyait le résultat au script côté serveur. :) – Brett

1

Tout ce qui est repris dans votre fichier add_list.php est envoyé à la fonction onComplete comme réponse. Ainsi, vous pouvez effectuer les opérations suivantes:

$(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

Merci beaucoup pour l'exemple! :) – Brett

0

Si vous voulez que le nom du fichier, vous « devez » utiliser (la méthode correcte) 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

Pour tous ceux qui peuvent courir en ceci dans le futur. Il m'a fallu un peu de temps pour comprendre comment transmettre mes propres données depuis le serveur.

La version actuelle de Uploadify à ce jour est de 3,2 et que vous êtes probablement pour l'événement onUploadSuccess: http://www.uploadify.com/documentation/uploadify/onuploadsuccess/

qui vous permettra d'obtenir des données renvoyées par le serveur.

Questions connexes