代码:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="/static/jquery-1.12.4.js"></script>
<style>
.img{
width: 300px;
height: 300px;
}
</style>
</head>
<body>
<input id="url" type="text">
<iframe id="my_frame" src="" style="display: none" name="my_frame"></iframe>
<form id="fo" method="POST" action="/upload/" enctype="multipart/form-data">
<input type="text" name="user" id="user"><br>
<input type="file" name="img" id="img" οnchange="UploadFile3();"><br>
<input type="submit" value="提交">
</form>
<div id="container">
</div>
<a οnclick="UploadFile();" style="color: red;cursor:pointer;">XMLRequest按钮上传</a>
<a οnclick="UploadFile2();" style="color: red;cursor:pointer;">XMLRequest按钮上传</a><br>
<a οnclick="UploadFile3();" style="color: red;cursor:pointer;">测试Iframe</a>
</body>
<script>
function UploadFile()
{
var formDa=new FormData();
formDa.append("user",document.getElementById("user").value);
var file=document.getElementById("img").files[0];
formDa.append("img",file);
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=function()
{
var data=xhr.responseText;
console.log(data);
};
xhr.open("post","/upload/",true);
xhr.send(formDa);
}
function UploadFile2(){
var formD=new FormData();
formD.append("user",$("#user").val());
var fileobj=$("#img")[0].files[0];
formD.append("imgg",fileobj);
$.ajax({
url:"/upload/",
type:"POST",
data:formD,
processData:false,
contentType:false,
success: function (data) {
console.log(data);
}
})
}
function UploadFile3()
{
$("#container").find("img").remove();
document.getElementById("my_frame").οnlοad=callBack;
document.getElementById("fo").target="my_frame";
document.getElementById("fo").submit();
}
function callBack() {
var text=$("#my_frame").contents().find("body").text();
console.log(text);
var response=JSON.parse(text);
if(response.status){
var tag=document.createElement("img");
tag.src="/"+response.filepath;
tag.className="img";
$("#container").append($(tag));
}else{
}
}
</script>
</html>
后端代码:
def upload(request):
if request.method=="POST":
ret={"status":True,"data":""}
user=request.POST.get("user",None)
img=request.FILES.get("img",None)
from django.core.files.uploadedfile import TemporaryUploadedFile
print(img._get_name(),type(img))
print(img.size)
f=open(os.path.join("static",img.name),"wb")
ret["filepath"]=os.path.join("static",img.name)
for chunck in img.chunks():
f.write(chunck)
f.close()
return HttpResponse(json.dumps(ret))
return render(request,"upload.html")
Django上传文件之iframe
原创wx5e6caa8b9792d 博主文章分类:Python自动化开发 ©著作权
©著作权归作者所有:来自51CTO博客作者wx5e6caa8b9792d的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
iframe模拟Ajax上传文件
在xmlhttprequest level ...
ajax 上传文件 html 上传 表单 -
django之上传文件
在django开发中上传文件
python django 上传文件 -
django上传文件代码
django中的文件上传
python django -
文件上传 - iframe上传
File Upload
学习 html 表单 javascript 数据 -
django上传文件
template html(模板文件):<form enctype="multipart/form-data" method="POST" action="/address/upload/"> <input type="file" name="file" /> <br /> <input type="submit" value="
django文件 django图片 django文件上传 django文件管理 django配置文件