博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python原生Ajax 文件上传
阅读量:7164 次
发布时间:2019-06-29

本文共 1107 字,大约阅读时间需要 3 分钟。

  hot3.png

原生Ajax文件上传,如果没有定义 <form entype=enctype="multipart/form-data"></form> 文件上传依赖JS FormData 对象

1、获取上传文件具体的对象

html 文件上传框

var fileobj = doucument.getElementById('file').files[0]

注意:获取上传的文件为 xx.files[0]

2、创建Form 表单

var form =  new FormData()

注意 ; js 创建 FormData 对象后,无需再创建 <foem></form> html标签

3、表单中添加文件信息

form.append('file', fileobj)      #append(key,value) 相当于 name = 'file ' value =fileobj

完整demo

html

views.py

def upload(request):    if request.method =='GET':        return render(request,'upload.html')    if request.method == 'POST':        file = request.FILES.get('file')              # 获取文件信息用 request.FILES.get        print(file)                                   # 这里的get('file') 相当于 name = file        # print(file) 可以直接显示文件名,是因为django FILES内部 重写了 __repr__ 方法         if file:                                      # 如果文件存在            with open(file.name,'wb') as f:               #  新建1张图片 ,图片名称为 上传的文件名                for temp in file.chunks():                #  往图片添加图片信息                    f.write(temp)        return HttpResponse('ok')

因为没有配置图片保存地址,所以直接上传到项目根路径

转载于:https://my.oschina.net/esdn/blog/915050

你可能感兴趣的文章