2010-07-24 6 views
3

J'utilise le JQUERY suivant Plug-in pour télécharger des idées:AJAX Upload + Coldfusion

http://valums.com/ajax-upload/

Pour une raison quelconque, je reçois l'erreur suivante:

The cffile action="upload" requires forms to use enctype="multipart/form-data". 

Même si le code du plug-in l'a:

var form = qq.toElement('<form method="post" enctype="multipart/form-data"></form>'); 

Des idées ce que le problème pourrait être?

Répondre

5

Cela arrive parce que Safari4 et Chrome5 ne permettent pas de formater xhr de la même manière que le téléchargement basé sur un formulaire normal.

Vous aurez besoin d'obtenir les données de poste brutes et l'écrire dans le fichier, quand normalement d'obtenir le fichier n'est pas disponible.

et retour { "succès": true}

ou en cas d'erreur { "erreur": "message d'erreur pour afficher"}

Il y a une fonction dans Coldfusion appelé GetHttpRequestData qui peut aider, mais je ne suis pas sûr, puisque je n'ai jamais utilisé Coldfusion moi-même.

http://www.adobe.com/livedocs/coldfusion/7/htmldocs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ColdFusion_Documentation&file=00000482.htm


Si ce sera trop difficile, je prévois d'ajouter une option pour envoyer la même manière de fichier que les versions précédentes ont fait, mais cela fonctionne parfaitement que dans Safari5, Chrome6 et le dernier FF, les utilisateurs d'autres navigateurs auront la même expérience que les utilisateurs d'IE.

En attendant, vous pouvez utiliser la version précédente http://github.com/valums/ajax-upload

+0

Je peux confirmer votre suggestion d'utiliser getHttpRequestData(). getHttpRequestData(). content renvoie les octets de fichier et la variable URL.qqFile contient le nom du fichier. Vous pouvez ensuite enregistrer le fichier sur disque à l'aide de FileWrite(). Mais je suis curieux ... est-ce que cela s'applique également à FF? J'ai remarqué le même comportement avec 3.6.7. – Leigh

+0

Oui, le fichier est envoyé de cette manière dans FF3.6 +, Safari4 + et Chrome 5+. –

+0

Merci @valums. +1 pour la bonne explication. – Leigh

0

Avez-vous volontairement omis le tag d'action? Peut-être pouvez-vous montrer au CFM comment gérer le téléchargement de fichiers.

+0

Ce n'est pas l'action, je peux le voir dans Firebug, le plug-in pour une raison quelconque n'est pas affectation comme enctype = formulaire « multipart/form-data ». Il le fait dans l'ancienne version? – WozPoz