Да, это еще один вопрос о том, как загрузить файл с jQuery-клиента на сервер django, за исключением того, что ни один из ~ 15 решений, найденных в Интернете, не работал для меня. (и, пожалуйста, извините мою нобость - я нечасто пользователь веб-фреймворков в целом).jquery -> django file uploading
Таким образом, установка выглядит следующим образом:
сторона Клиента:
var formData = new FormData();
formData.append('file', response.output['file'], response.output['name'])
$.ajax({
url: "djangourl",
data: formData,
processData: false,
contentType: false, // also tried setting 'multipart/form-data', no profit
mimeType: 'multipart/form-data',
type: 'POST',
dataType: 'json',
cache: false,
success: function(data){
alert(JSON.stringify(data));
},
error: function(data){
alert(JSON.stringify(data));
}
});
сторона сервера:
@require_http_methods(["POST"])
@csrf_exempt
def upload_document(request, project_id):
try:
if request.FILES:
return HttpResponse(json.dumps("Yay!", default=json_util.default), status=200, content_type="application/json")
else:
return HttpResponse(json.dumps("Nah.", default=json_util.default), status=200, content_type="application/json")
except Exception as e:
return HttpResponseServerError(str(e))
И каждый раз, когда я пытаюсь это, я получаю пустой request.FILES
, любые идеи, почему ?
UPDATE: как оказалось, request.POST содержит ключевой «файл», который привязан к «[object FileList]» (буквально эта строка), если это помогает как-то прояснить ситуацию.
Я думаю, вы можете повторно использовать код из этого вопроса: http://stackoverflow.com/questions/19617996/file-upload-without-form –
Или здесь http://stackoverflow.com/questions/166221/как-кан-I-Upload-файлы-асинхронно? RQ = 1 –