Django上传文件

# 处理上传文件的函数
def upload(request):
    """
    保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。
    但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。
    :param request:
    :return:
    """
    if request.method == "POST":
        print(request.FILES)
        print(request.FILES["upload_file"].name)
        # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值
        filename = request.FILES["upload_file"].name
        # # 在项目目录下新建一个文件
        with open(filename, "wb") as f:
            # 从上传的文件对象中一点一点读
            for i in request.FILES["upload_file"].chunks():
                # 写入本地文件
                f.write(i)
        return HttpResponse("上传OK")

    else:

 

 

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="/upload/" method="post" enctype="multipart/form-data">
    <input type="file" name="upload_file">
{#    <input type="file" name="upload_file2">#}
    <input type="submit" value="开始上传">
</form>

</body>
</html>

 

posted @ 2018-12-06 13:38  RobotsRising  阅读(293)  评论(0编辑  收藏  举报