• 文件上传的几种方法


     
     
    一、enctype="multipart/form-data"
    <!DOCTYPE html>
    <html>
    <head>
        <title>test</title>
    </head>
    <body>
    <form action="/test/" method="post" enctype="multipart/form-data"> <!--如果不加这个的话,提交的数据会以键值对提交-->
        {% csrf_token %}
        文件:<input type="file" name='test'><br>
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
    def test(request):
        if request.method == 'POST':
            file = request.FILES.get('test')
            with open(file.name, 'wb') as f:
                for line in file:
                    f.write(line)
        return render(request, 'test.html')
     
    二、.chunks()
    def upload(request):
        """
        保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。
        但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。
        :param request:
        :return:
        """
        if request.method == "POST":
            # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值
            filename = request.FILES["file"].name
            # 在项目目录下新建一个文件
            with open(filename, "wb") as f:
                # 从上传的文件对象中一点一点读
                for chunk in request.FILES["file"].chunks():
                    # 写入本地文件
                    f.write(chunk)
            return HttpResponse("上传OK")
    <!DOCTYPE html>
    <html>
    <head>
        <title>test</title>
    </head>
    <body>
    <form action="/test/" method="post">
        {% csrf_token %}
        文件:<input type="file" name='test'>
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
     
     
  • 相关阅读:
    冲刺第四天
    冲刺第三天
    冲刺第二天
    评估前冲刺第一天
    点击切换上一页,下一页
    react生命周期
    package.json入门
    nodeType的十二种类型
    ECMAScript 6 let和const命令
    JavaScript语言精粹_JSON
  • 原文地址:https://www.cnblogs.com/changwoo/p/9568516.html
Copyright © 2020-2023  润新知