Actionscript (Flex) потоковая загрузка в Django - PullRequest
0 голосов
/ 23 февраля 2012

Я хочу загрузить большие файлы изображений из ActionScript из Flex. Учебное пособие по загрузке файлов https://docs.djangoproject.com/en/dev/topics/http/file-uploads/ обрабатывает загрузку потокового файла из формы, поэтому файл преобразуется в request.FILE ['name'], но я не знаю, как повторить это в ActionScript. Я попытался также передать файл в качестве аргумента POST, но я получаю сообщение об ошибке:

in handle_uploaded_file for chunk in f.chunks():
AttributeError: 'unicode' object has no attribute 'chunks'

Это ошибка в моем коде Python, что я должен использовать только request.FILE или это проблема в моем ActionScript? Как правильно загрузить файл без формы. Вот мой код ActionScript:

var upload:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest(UploadURL+"?var="+Math.random());
var sendVars:URLVariables = new URLVariables();
var header:URLRequestHeader = new URLRequestHeader("enctype", "multipart/form-data");
upload.dataFormat = URLLoaderDataFormat.BINARY;
upload.addEventListener(Event.COMPLETE, image.uploadedEvent);
sendVars.file = image.getBytearray(); // image is a JPEG encoded ByteArray
request.data = sendVars;
request.method = URLRequestMethod.POST;
request.requestHeaders.push(header);
upload.load(request); 

вот часть Джанго:

def upload_file(request): 
  if request.method == 'POST':
    handle_uploaded_file(request.POST.get('file'))
  return HttpResponse()

def handle_uploaded_file(f):
  destination = open('file.dat', 'wb+')
  for chunk in f.chunks():
      destination.write(chunk)
  destination.close()

Спасибо

1 Ответ

0 голосов
/ 23 февраля 2012

Вы понимаете, что потоковая передача не равна загрузке HTTP, верно?Вы вообще пытались отлаживать?Я полагаю, что ваш файл f является полным образом файла и не содержит фрагментов, потому что он никогда не транслировался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...