django2.2文件上传

标签: python  django2.2

  • 前端页面
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>文件上传</h1>               <!--将文件以二进制的形式上传-->
<form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="file" name="photo"><br>
    <input type="submit">
</form>
{{ content }}
</body>
</html>
  • 视图处理函数
def file(request):
    if request.method == 'POST':
        # 获取文件对象
        fobj = request.FILES.get('photo')
        # 如果有文件,并且文件小于30M,则保存文件
        if fobj and fobj.size < 1024*1024*30:
            # 创建文件路径(放在static/file/文件名)
            path = os.path.join(STATICFILSE_DIRS[0], 'file/')
            # 创建文件名:当前时间 + 一个随机数 + ‘-’ + 上传的文件名
            file_name = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + str(random.randint(1, 10000)) + '-' + fobj.name
            # 合并得到最终的文件名路径
            path = os.path.join(path, file_name)
            # 保存文件
            with open(path, 'wb')as f:
                # 判断文件是否大于2.5m,大于则按块写入,否则直接写入
                if fobj.multiple_chunks():
                    for data in fobj.chunks():
                        f.write(data)
                else:
                    f.write(fobj.read())
                return render(request, 'file.html', {'content': '上传成功'})
        else:
            return render(request, 'file.html', {'content': '这文件不对头'})
    return render(request, 'file.html')

在这里插入图片描述
在这里插入图片描述
路由这么简单的就不弄个出来了

版权声明:本文为qq_44657868原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44657868/article/details/107343217