本例用jquery实现无刷新异步上传图片,结合iframe来上传图片,具体实现方法如下。
1、HTML中form表单相关代码
<form method="post" enctype="multipart/form-data" action="http://www.jb200.com/upload" target="uploadiframe" style="display"none;">
<input type="file" id="file-input" name="file">
<input type="submit" id="file-submit">
<iframe name="uploadiframe"></iframe>
</form>
解释:
在form表单中会有一个iframe,此处便是要在from中设置target等于iframe的name,使form表单提交到iframe中。
此时,可以在js中写入代码:
复制代码 代码示例:
$(".file-button").bind("click",function(){
$("#file-input").trigger("click");
});
$("#file-input").bind("change",function(){
$("#file-submit").trigger("click");
});
function onUploadSuccess(data){
//the function after upload
}
这时,只需后端在上传接口的返回值中,调用parent的onUploadSuccess方法即可:
复制代码 代码示例:
<script type="text/
javascript">
document.domain = "sample.com";
window.parent.onUploadSuccess({"code":0,"msg":"","data":{"width:,"height":,"url":""}});
</script>
说明:在iframe中加入domain的设置是为了防止JS对于跨域的验证