ajax之---上传图片和预览

Posted 小孩没穿鞋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ajax之---上传图片和预览相关的知识,希望对你有一定的参考价值。

views.py

def upload_img(request):
nid=str(uuid.uuid4())
ret={‘status‘:True,‘data‘:None,‘message‘:None}
obj=request.FILES.get(‘k3‘)
file_path=os.path.join(‘static‘,nid+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))

index.html

<!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="k3" onchange="uploadFile();" />
    </form>
    <h3>预览</h3>
    <div id="preview">
    </div>
    <script src="/static/js/jquery-3.1.1.js"></script>
    <script>

        function uploadFile() {
            document.getElementById(‘iframe1‘).onload = reloadIframe1;
            document.getElementById(‘fm1‘).submit();
        }
        function reloadIframe1() {
            var content = this.contentWindow.document.body.innerHTML;
            var obj = JSON.parse(content);

            var tag = document.createElement(‘img‘);
            tag.src = obj.data;
            $(‘#preview‘).empty().append(tag);
        }
    </script>
</body>
</html>



















































以上是关于ajax之---上传图片和预览的主要内容,如果未能解决你的问题,请参考以下文章

HTML5可预览多图片ajax上传(使用formData传递数据)

HTML5可预览多图片ajax上传(使用formData传递数据)

基于HTML5和JSP实现的图片Ajax上传和预览

Ajax 上传图片并预览

使用ajax发送文件的三种方式及预览图片的方法,上传按钮美化

基于HTML5的可预览多图片Ajax上传