Django 文件上传
form表单上传文件
ajax上传文件
用户名:
头像:
$('#ajax_btn').click(function () {
var uname = $('#username').val();
var file_obj = $('#avatar')[0].files[0];
var formdata = new FormData();
formdata.append('username',uname);
formdata.append('csrfmiddlewaretoken','{{ csrf_token }}');
formdata.append('avatar',file_obj);
$.ajax({
url:'/login/',
type:'post',
data:formdata,
processData: false , // 不处理数据
contentType: false, // 不设置内容类型
success:function (res) {
console.log(res);
}
})
})
视图代码
def login(request):
if request.method == 'GET':
return render(request, 'login.html')
else:
# print(request.POST)
# print(request.FILES)
file_obj = request.FILES.get('avatar')
print(file_obj) // JS语言.md <class 'django.core.files.uploadedfile.InMemoryUploadedFile'>
name = file_obj.name
print(name) // JS语言.md <class 'str'>
with open(fr'C:\Users\oldboy\Desktop\Pointofix{name}', 'wb') as f:
print(type(file_obj))
with open(name, 'wb') as f:
# 方式1
# for i in file_obj: # \r\n
# 方式2
# for i in file_obj.chunks(): # \r\n
for i in file_obj.chunks(): # \r\n 读取65536B
f.write(i)
return HttpResponse('ok')

浙公网安备 33010602011771号