• Django上传文件的两种方式


    基于form表单上传文件

    HTML

    <h3>基于form表单的上传文件</h3>
    
    <form action="" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <p><input type="text" name="user"></p>
        <p><input type="file" name="f"></p>
        <input type="submit">
    </form>
    

    view

    def index(request):
        if request.method=="POST":
    
            print(request.POST)
            print(request.FILES.get("f"))
            obj=request.FILES.get("f")
            name=obj.name
            f_write=open(name,"wb")
            for  line in obj:
                f_write.write(line)
    
            return HttpResponse("success")
    
        return render(request,"index.html")

    基于Ajax上传文件

    FormData是什么呢?

    XMLHttpRequest Level 2添加了一个新的接口FormData.利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,我们还可以使用XMLHttpRequest的send()方法来异步的提交这个"表单".比起普通的ajax,使用FormData的最大优点就是我们可以异步上传一个二进制文件

    HTML 

    <h3>基于ajax的文件上传</h3>
    
    {% csrf_token %}
    <p><input type="text" id="pwd"></p>
    <p><input type="file" id="file"></p>
    <button class="ajax_btn">提交</button>
    
    <script>
        $(".ajax_btn").click(function () {
    
            var formdata=new FormData();
            formdata.append("pwd",$("#pwd").val());
            formdata.append("csrfmiddlewaretoken",$("[name='csrfmiddlewaretoken']").val());
            formdata.append("f",$("#file")[0].files[0]);
    
            $.ajax({
                url:"/put_ajax/",
                type:"post",
                data:formdata,
                contentType:false,
                processData:false,
                success:function (data) {
                    console.log(data);
                }
    
            })
    
        })
    </script>

    view

    def put_ajax(request):
    
        print(request.POST)
        print(request.FILES)
    
        return HttpResponse("OK")
  • 相关阅读:
    POI 给单元格添加批注
    Linux下Mysql的odbc配置(修改网上博文)
    Linux下mysql实现类似于Sqlser的Profiler的访问记录监听功能
    windows下部署icescrum
    sql server2008查询会话的Ip地址、用户登录名、登录机器名
    error while loading shared libraries的解決方法
    做个标记,指针的指针的应用
    微信架构(转)
    网络监控netstat(转)
    大话MVC模式
  • 原文地址:https://www.cnblogs.com/iyouyue/p/8424197.html
Copyright © 2020-2023  润新知