2009-10-22 10 views
1

J'ai besoin de construire un téléchargeur de fichiers dans AS3 qui est capable de télécharger des fichiers dans une vue django authentifiée qui contient un formulaire avec une entrée de téléchargement de fichier. J'ai travaillé sur cela pendant 7 jours entiers, toute la journée. Après avoir creusé beaucoup, j'ai découvert qu'Adobe, dans sa sagesse infinie, a désactivé les en-têtes de cookies pour les envoyer depuis le flash. Par défaut, django n'accepte que le cookie de sessionid, donc j'ai ajouté un middleware personnalisé qui permet l'authentification via une variable POST de session. Cela a été testé et est fonctionnel.Comment télécharger des fichiers sur django depuis AS3 Flash?

Cependant, je ne peux toujours pas télécharger, même avec le ID de session dans le POST. Lorsque je tente un téléchargement, les octets semblent augmenter, et pour une raison quelconque, le téléchargement échoue. Voici la réponse.

flash says selectHandler: name=douchetop.png URL=http://dev.citizengroove.com/upload/ 
progressHandler: name=douchetop.png bytesLoaded=32768 bytesTotal=139082 
progressHandler: name=douchetop.png bytesLoaded=65536 bytesTotal=139082 
progressHandler: name=douchetop.png bytesLoaded=98304 bytesTotal=139082 
progressHandler: name=douchetop.png bytesLoaded=131072 bytesTotal=139082 
progressHandler: name=douchetop.png bytesLoaded=139082 bytesTotal=139082 
httpResponseStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=500] 
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=500] 
flash says: ioErrorHandler: Error #2038: File I/O Error. URL: http://dev.citizengroove.com/upload/ 

S'il vous plaît, s'il vous plaît, s'il vous plaît aidez-moi!

Répondre

0

Je ne sais pas exactement quel est le problème, mais je pourrais peut-être vous donner quelques conseils pour vous aider à résoudre ce problème.

Avez-vous essayé de télécharger le fichier via curl?

curl http://dev.citizengroove.com/upload/ -d <Post Data> -T douchetop.png 

Ensuite, en fonction de ce que les mains à vous, vous pourriez être en mesure de déboguer cela plus facile en supposant que le problème est dans django et ne clignote pas. Si rien d'autre, vous saurez quelle est la moitié de ce problème.

0

Je ne sais pas non plus quel est le problème, mais j'espère pouvoir vous envoyer des détails utiles à votre façon. D'après ce que je peux comprendre, vous envoyez les données, mais vous ne pouvez pas les reconstruire à la fin de Django.

Pour HttpRequest.FILES, le Django docs disent: « Notez que les fichiers ne contiennent des données si la méthode de requête était POST et le <form> qui a publié à la demande avait enctype = » multipart/form-data » Sinon, des fichiers sera. un objet semblable à un dictionnaire vide. "

Si vous ne postez pas le formulaire avec enctype="multipart/form-data", vous devrez reconstruire le fichier à partir de request.raw_post_data. Ceci est expliqué par @theivviax here.

Il a d'abord écrit ce commentaire lors de l'utilisation de Pluploads, qui prend en charge un backend Flash pour le téléchargement de fichiers volumineux via HTTP. Il est sous licence GPLv2, peut-être vous pouvez jeter un oeil à leurs documents ou sources.

Questions connexes