Как я могу загрузить файлы в Django из AS3 Flash? - PullRequest
1 голос
/ 22 октября 2009

Мне нужно создать загрузчик файлов в AS3, который способен загружать файлы в аутентифицированное представление django, которое содержит форму с вводом загрузки файла.

Я работал над этим целыми 7 дней, весь день.

После долгих поисков я обнаружил, что Adobe в своей бесконечной мудрости отключила отправку заголовков файлов cookie с флэш-памяти. По умолчанию django принимает сессионные файлы только через cookie, поэтому я добавил специальное промежуточное программное обеспечение, которое позволяет выполнять аутентификацию с помощью сеансового POST var Это было проверено и является функциональным.

Тем не менее, я все еще не могу загрузить, даже с sessionid в POST. Когда я делаю попытку загрузки, кажется, что байты увеличиваются, а затем по какой-то причине загрузка завершается неудачно. Вот ответ.

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/

Пожалуйста, пожалуйста, пожалуйста, помогите мне!

Ответы [ 2 ]

0 голосов
/ 16 ноября 2010

Я также не уверен, в чем проблема, но я надеюсь, что смогу поделиться некоторыми полезными деталями по-вашему. Насколько я понимаю, вы отправляете данные, но не можете восстановить их на конце Джанго.

Для HttpRequest.FILES в Django docs говорится: «Обратите внимание, что ФАЙЛЫ будут содержать данные только в том случае, если метод запроса был POST и <form>, отправленный в запрос, имел enctype =" multipart / form -data ". В противном случае FILES будет пустым словарным объектом."

Если вы не публикуете форму с enctype="multipart/form-data", вам придется восстановить файл с request.raw_post_data. Это объясняется @theivviax здесь .

Первоначально он написал этот комментарий при использовании Pluploads , который поддерживает флеш-бэкэнд для загрузки больших файлов по HTTP. Он лицензирован под GPLv2, возможно, вы можете взглянуть на их документы или источники.

0 голосов
/ 23 октября 2009

Я не уверен, в чем проблема, но я мог бы дать вам несколько советов, которые помогут вам справиться с этим.

Вы пытались загрузить файл через curl?

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

Тогда, основываясь на том, что вам возвращает, вы можете отладить это проще, если предположить, что проблема в django, а не во flash. Если ничего другого, вы будете знать, в какой половине этого возникла проблема.

...