【发布时间】:2016-03-11 05:30:20
【问题描述】:
是的,这是我如何将文件从 jquery 客户端上传到 django 服务器的另一个问题,除了在网上找到的 15 种解决方案中没有一个对我有用。 (请原谅我的菜鸟——我一般不经常使用 Web 框架)。
因此,设置如下所示:
客户端:
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,有什么想法吗?
更新:事实证明,request.POST 包含绑定到“[object FileList]”(字面意思是这个字符串)的键“文件”,如果这有助于澄清情况的话。
【问题讨论】:
-
我想你可能想重用这个问题的一些代码:stackoverflow.com/questions/19617996/file-upload-without-form