Django 上传文件

views.py

# 上传文件
def upload(request):
    if request.method == "POST":
        file_obj = request.FILES.get("file")
        with open(file_obj.name, "wb") as f:
            # chunks() 一点一点的上传文件
            for chunk in file_obj.chunks():
                f.write(chunk)
    return render(request, "upload.html")

模板

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>
<form action="/upload/"  method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <p>
        <input type="file" name="file">
    </p>
    <p>
        <input type="submit" value="上传">
    </p>
</form>
</body>
</html>

总结:

1、form表单

上传文件,一定要有

enctype="multipart/form-data"

 2、视图

获取文件对象

file_obj = request.FILES.get("file")

获取文件名称

file_obj.name

内置的chunks()方法,按块上传文件

  for chunk in file_obj.chunks():
    f.write(chunk)

 利用AJAX上传文件

需要用到FormData储存数据

并且要加

processData: false,
contentType: false,

 

posted @ 2019-08-06 19:47  市丸银  阅读(166)  评论(0编辑  收藏  举报