2009-03-05 8 views
6

Je crée une application Web à l'aide Grails qui utilise beaucoup de ajax.I veulent mettre en œuvre le téléchargement de fichiers à l'aide ajax.I ne savent pas comment utiliser ajax pour le code SGP exemple de upload.My fichier est:téléchargement de fichiers à distance dans Grails

<!-- code for file upload form--> 
<div id="updateArea"> 

</div> 

J'ai essayé avec et. Après le téléchargement, je veux mettre à jour le 'updateArea' avec le résultat. En conséquence, je prévois de montrer les détails du fichier téléchargé.

+0

Jetez un oeil à [cette] (http://stackoverflow.com/a/27602218/2835520) réponse – IgniteCoders

Répondre

3

Le téléchargement d'un fichier via Ajax n'est pas vraiment possible. Vous pouvez toujours télécharger un fichier en arrière-plan en utilisant un iframe caché et soit évaluer la réponse (qui est alors à l'intérieur de l'iframe) ou déclencher un autre appel ajax une fois le téléchargement terminé.

<g:form name="upload-form" action="upload" method="post" enctype="multipart/form-data" target="hidden-upload-frame"> 
    File: <input type="file" name="myFile" /> 
    <button type="submit">Upload</button> 
</g:form> 

<iframe id="hidden-upload-frame" name="hidden-upload-frame" style="display: none" onload="onUploadComplete"> 
</iframe> 

<script type="text/javascript"> 
    function onUploadComplete(e) { 
     // Handle upload complete 
     alert("upload complete"); 
     // Evaluate iframe content or fire another ajax call to get the details for the previously uploaded file 
    } 
</script> 

Une autre option consiste à utiliser un mécanisme de téléchargement base de mémoire flash (par exemple. swfupload) au lieu de l'iframe.

+0

Salut Siegfried Puchbauer.I a essayé votre answer.But iframe ne fonctionne pas dans mozilla firefox et IE navigateurs.J'ai essayé avec le navigateur google chrome.Il travaille.Comment faire ce travail dans IE et Firefox? – DonX

+0

Salut. Désolé, c'était une faute de frappe. Normalement, vous devez définir l'attribut name de l'iframe, pas l'attribut id comme je l'ai fait involontairement. Bravo –

+0

Merci beaucoup pour les réponses et la réponse rapide.Maintenant, le problème a été résolu. – DonX

Questions connexes