• django 笔记16 文件上传笔记


    views.py文件

    def upload_file(request):
        username = request.POST.get('username')
        fafafa = request.FILES.get('fafafa')
        import os
        img_path = os.path.join('static/imgs/',fafafa.name)
        with open(img_path,'wb') as f:
            for item in fafafa.chunks():
                f.write(item)
    
        ret = {'code': True , 'data': img_path}
        import json
        return HttpResponse(json.dumps(ret))

    upload.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            .upload{
                display: inline-block;padding: 10px;
                background-color: brown;
                position: absolute;
                top: 0;
                bottom: 0;
                right: 0;
                left: 0;
                z-index: 90;
            }
            .file{
                 100px;height: 50px;opacity: 0;
                position: absolute;
                top: 0;
                bottom: 0;
                right: 0;
                left: 0;
                z-index: 100;
            }
        </style>
    </head>
    <body>
        <div style="position: relative; 100px;height: 50px;">
            <input class="file" type="file" id="fafafa" name="afafaf" />
            <a class="upload">上传</a>
        </div>
        <input type="button" value="提交XHR" onclick="xhrSubmit();" />
        <input type="button" value="提交jQuery" onclick="jqSubmit();" />
        <hr/>
    
        <form id="form1" action="/upload_file/" method="POST" enctype="multipart/form-data" target="ifm1">
            <iframe id="ifm1" name="ifm1" style="display: none;"></iframe>
            <input type="file" name="fafafa" onchange="changeUpalod();" />
            <input type="submit" onclick="iframeSubmit();" value="Form提交"/>
        </form>
    
        <div id="preview"></div>
    
    
        <script src="/static/jquery-1.12.4.js"></script>
        <script>
            function changeUpalod(){
                $('#ifm1').load(function(){
                    var text = $('#ifm1').contents().find('body').text();
                    var obj = JSON.parse(text);
    
                    $('#preview').empty();
                    var imgTag = document.createElement('img');
                    imgTag.src = "/" + obj.data;
                    $('#preview').append(imgTag);
                });
                $('#form1').submit();
            }
    
            function jqSubmit(){
                // $('#fafafa')[0]
                var file_obj = document.getElementById('fafafa').files[0];
    
                var fd = new FormData();
                fd.append('username','root');
                fd.append('fafafa',file_obj);
    
                $.ajax({
                    url: '/upload_file/',
                    type: 'POST',
                    data: fd,
                    processData: false,  // tell jQuery not to process the data
                    contentType: false,  // tell jQuery not to set contentType
                    success:function(arg,a1,a2){
                        console.log(arg);
                        console.log(a1);
                        console.log(a2);
                    }
                })
            }
    
            function xhrSubmit(){
                // $('#fafafa')[0]
                var file_obj = document.getElementById('fafafa').files[0];
    
                var fd = new FormData();
                fd.append('username','root');
                fd.append('fafafa',file_obj);
    
                var xhr = new XMLHttpRequest();
                xhr.open('POST', '/upload_file/',true);
                xhr.onreadystatechange = function(){
                    if(xhr.readyState == 4){
                        // 接收完毕
                        var obj = JSON.parse(xhr.responseText);
                        console.log(obj);
                    }
                };
                xhr.send(fd);
            }
    
            function iframeSubmit(){
                $('#ifm1').load(function(){
                    var text = $('#ifm1').contents().find('body').text();
                    var obj = JSON.parse(text);
                    //
                    $('#preview').empty();
                    var imgTag = document.createElement('img');
                    imgTag.src = "/" + obj.data;
                    $('#preview').append(imgTag);
                })
            }
    
        </script>
    </body>
    </html>
  • 相关阅读:
    【UML建模】UML类图几种关系的总结
    【架构框架】IoC框架
    【AutoMapper基础】值解析器--Custom value resolvers
    【AutoMapper基础】简单示例--Flattening
    【AutoMapper简介】
    【UML建模】UML类图符号简介
    【.Net基础02】XML序列化问题
    【.net 基础01】ReferenceEquals,Equals,==的区别
    【Visual Studio】利用预编译命令发布不同的版本
    【Windows Phone 8】五角星评价控件
  • 原文地址:https://www.cnblogs.com/Liang-jc/p/9265881.html
Copyright © 2020-2023  润新知