django 使用ajax上传文件并返回图片路径和状态码


 

前端源码:

<!DOCTYPE html>
<html>
<head>
    <title>编辑商品分类</title>
    <link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>

<div class="container-fluid">
    <div class="row">
        <div class="box">
            <div class="box-header">

                {#路径导航#}
                <ol class="breadcrumb">
                    <li><a href="#">产品管理</a></li>
                    <li><a href="#">分类列表</a></li>
                    <li class="active">会员编辑</li>
                </ol>
                {#路径导航#}

            </div>
            <div class="box-body">
                <div class="col-md-12">
                    <form method="POST" enctype="multipart/form-data">
                        {% csrf_token %}
                        <div class="form-group">
                            <label for="username">商品分类名称</label>
                            <input type="text" class="form-control" name="name" id="username" value="{{ type.name }}">
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1">原图片</label>

                            <a href=""
                               style="width:155px;height:115px;display:block;text-align:center;border:1px solid red;position:relative;background:url({{ type.img.url }}) no-repeat;">
                                <input type="file" style="position: absolute;width:155px;height:115px;top:0px;left:0px;filter:alpha(opacity=0);
cursor:pointer;overflow: hidden;opacity: 1; " name="upload_media" id="upload_media" multiple="multiple" >
                            </a>

                        </div>


                        <button type="submit" class="btn btn-default">编辑</button>
                    </form>
                </div>
            </div>

        </div>
    </div>
</div>


</body>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script>
    $(function () {
        $('.img-thumbnail').click(function () {
            console.log('点击了')
            $('.upload_media').change(function () {
                console.log('deeee')
            })
        });
        $('#upload_media').change(function () {
            var $formData=new FormData();
            var img_file = $('#upload_media')[0].files[0];
            $formData.append("img_file",img_file);
            $.ajax({
                url: "{% url 'admincms:upload_file' %}",
                type: "POST",
                data: $formData,
                contentType: false,
                processData: false,
                headers: {"X-CSRFToken": $('[name="csrfmiddlewaretoken"]').val()},
                success: function (data) {
                    //$(".error_msg").text(data)
                    console.log(data)
                },
                error:function(data){
                    console.log(data)
                }
            })
        });
    });
</script>
</html>

  

视图源码:

#上传图片
def upload_file(request):
    fafafa = request.FILES.get('img_file')
    print(fafafa)
    print(fafafa.name)
    import os
    img_path = os.path.join('static/media/',fafafa.name)    #存储的路径
    with open(img_path,'wb') as f:      #图片上传
        for item in fafafa.chunks():
            f.write(item)

    ret = {'code': True , 'data': img_path}  #'data': img_path 数据为图片的路径,
    import json
    return HttpResponse(json.dumps(ret))    #将数据的路径发送到前端

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM