Django 文件上传
来源:互联网 发布:c语言if语句例题 编辑:程序博客网 时间:2024/06/09 16:37
form表单:
<form action="/upload/" method="post" enctype="multipart/form-data"> {% csrf_token %} <input type="file" name="myfile"> <input type="submit"> </form>
创建一个form表单,需要特别注意的是,在有文件上传的form表单中,method属性必须为post,而且必须指定它的enctype为"multipart/form-data",表明不对字符进行编码。
设置urls
在views中
def formtableupload(request): if request.method == 'POST': '''form表单接收文件 ''' file_obj=request.FILES.get('myfile',None)#文件在FILES中 print(file_obj) print(type(file_obj)) if file_obj: with open(file_obj.name,'wb') as f:#路径可设置 for chunk in file_obj.chunks():# 分块写入文件 f.write(chunk) return HttpResponse('OK')
myFile.read():从文件中读取整个上传的数据,这个方法只适合小文件;
myFile.chunks():按块返回文件,通过在for循环中进行迭代,可以将大文件按块写入到服务器中;
myFile.multiple_chunks():这个方法根据myFile的大小,返回True或者False,当myFile文件大于2.5M(默认为2.5M,可以调整)时,该方法返回True,否则返回False,因此可以根据该方法来选择选用read方法读取还是采用chunks方法:
if myFile.multiple_chunks() == False:
# 使用myFile.read()
else:
# 使用myFile.chunks()
myFile.name:这是一个属性,不是方法,该属性得到上传的文件名,包括后缀,如123.exe;
myFile.size:这也是一个属性,该属性得到上传文件的大小。
==================================================================================
AJAX方式html <div class="form-gtoup file_img"> <input type="file" class="sol" id="file_input"> <button>upload</button> </div>
jquery$(".submit_login").click(function () {var formdeta=new FormData//创建一个H5对象formdeta.append('csrfmiddlewaretoken',$('[name=csrfmiddlewaretoken]').val())//装入验证formdeta.append('img',$('#file_input')[0].files[0])//装入文件$.ajax({ url: '/reg/', type: "POST", data: formdeta, processData: false, // 使用formdata,processData,contentType必须设为false contentType: false, success:function (data) {alert(data)}
viewsif forms_obj.is_valid(): file_obj=request.FILES.get('img')#接收文件对象models.UserInfo.objects.create_user(img=file_obj)return HttpResponse('OK')
阅读全文
0 0
- Django - 上传文件(初稿)
- django 文件上传
- django 文件上传
- Django的文件上传
- django上传文件
- django 文件上传
- django上传文件
- django 上传文件
- django上传文件
- Django文件上传
- django实现文件上传
- Django form 文件上传
- Django实现文件上传
- django 文件上传
- Django文件上传
- python-django文件上传
- Django文件上传
- DJango文件上传实现
- mysql workbench中PK,NN,UQ,BIN,UN,ZF,AI字段类型标识说明
- 【recover-binary-search-tree】
- pat 乙级 1056. 组合数的和(15)
- JS(1)
- Linux操作系统分析学习第一周感悟
- Django 文件上传
- C#基础-050 结构
- 关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
- Linux后端开发
- uva 156 Ananagrams STL
- Xcode报错:embedded dylibs/frameworks are only supported on iOS 8.0 and later
- eventlet.event.Event
- JAVA设计模式---适配器模式
- HTML5 canvas绘图