У меня такая проблема - я использую Python 2.6 / Django 1.3, и мне нужно принять в качестве переменной POST ключ 'f', который содержит двоичные данные . После этого мне нужно сохранить данные в файл.
POST
T$topX$objectsX$versionY$archiverО©ҐR$0О©ҐО©ҐО©Ґull_=<---------------------- content of file -------------------->О©ҐО©Ґ_NSKeyedArchive(258:=CО©ҐО©Ґ
Код
from django.core.files.storage import default_storage
from django.core.files.base import ContentFile
def save(request):
upload_file = request.POST['f']
save_path = default_storage.save('%s%s' % (save_dir, filename),
ContentFile(upload_file))
Когда я пытаюсь сделать
nano /tmp/myfile.zip
Возвращает данные типа
T^@^@^@$^@^@^@t^@^@^@o^@^@^@p^@^@^@X^@^@^@$^@^@^@o^@^@^@b^@^@^@j^@^@^@e^@^@^@c^@^@^@t^@^@^@s^@^@^@X^@^@^@$^@^@^@v^@^@^@e^@^@^@r^@^@^@s^@^@^@i^@^@$
Когда это будет сделано, я собираюсь прочитать сохраненный файл
def read(request):
user_file = default_storage.open(file_path).read()
file_name = get_filename(file_path)
response = HttpResponse(user_file, content_type = 'text/plain',
mimetype = 'application/force-download')
response['Content-Disposition'] = 'attachment; filename=%s' % file_name
response['Content-Length'] = default_storage.size(file_path)
return response
В случае, когда я пишу
print user_file
Возвращает правильные данные, но когда я возвращаю HttpResponse, он имеет данные, отличные от источника