Django-上传文件

上传文件必备的三要素
1、from标签
2、enctype="multipart/form-data"
3、input标签,具有name属性,用于后端取值用type="submit"

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

</form>

</body>
</html>
  • 设置路由
from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^upload/', views.upload),
]
  • 视图函数
    request.FILES.get("up")取得文件名对象
    with open("xxx.jpg",'wb')as f 将文件保存为xxx.jpg,以二进制形式写入。
    for line in file_obj: 一行行的写入文件
def upload(request):
    if request.method =="POST":
        file_obj = request.FILES.get("up")
        # with open("xxx.jpg",'wb')as f:
        with open(file_obj.name,'wb')as f:
            for line in file_obj:
                f.write(line)
    return render(request,"upload1.html")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容