码迷,mamicode.com
首页 > Web开发 > 详细

ifram+form方式实现文件、图片上传、预览

时间:2017-07-11 21:25:05      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:win   onchange   add   iframe   function   前端   tar   img   this   

1、前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .btn{
            display: inline-block;
            padding: 5px 10px;
            background-color: coral;
            color: white;
        }
    </style>
</head>
<body>

    <iframe style="display: none" id="iframe1" name="ifra1"></iframe>
    <form id="fm1" action="/upload_img.html" method="POST" enctype="multipart/form-data" target="ifra1">
        <input type="file" name="k1" onchange="uploadFile();" />
    </form>
    <h3>预览</h3>
    <div id="preview">
    </div>
    <script src="/static/js/jquery-3.1.1.js"></script>
    <script>
         //文件上传控件绑定onchange事件,当有文件上传就触发表单提交
        function uploadFile() {
            document.getElementById(iframe1).onload = reloadIframe1;
            document.getElementById(fm1).submit();
        }

        //取得iframe控件的返回值,并将值取出进行json反序列化,
        function reloadIframe1() {
            var content = this.contentWindow.document.body.innerHTML;
            var obj = JSON.parse(content);

            //创建img控件,并将远端的图片地址赋予image。
            var tag = document.createElement(img);
            tag.src = obj.data;
            $(#preview).empty().append(tag);
        }
    </script>
</body>
</html>   

 

2、后端代码

def upload_img(request):
    ret={status:True,data:None}
    obj = request.FILES.get(k1)
    print(obj)
    file_path = os.path.join(static,obj.name)
    f = open(file_path,wb)
    for line in obj.chunks():
        f.write(line)

    f.close()
    ret[data]=file_path
    return HttpResponse(json.dumps(ret))

 

ifram+form方式实现文件、图片上传、预览

标签:win   onchange   add   iframe   function   前端   tar   img   this   

原文地址:http://www.cnblogs.com/xiaoqianghuihui/p/7152055.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!