利用iframe进行ajax文件提交
来源:互联网 发布:泛海三江主机编程软件 编辑:程序博客网 时间:2024/05/24 22:45
利用iframe内嵌框架ajax图片上传剖析
虽然网上关于jquery的插件一大堆,但是配置文件和相关设置也是相当麻烦,这是一个简易的上传方案。代码量相对来说已经少了很大一截了。
<div> <form class="J_upForm" data-index="1" enctype="multipart/form-data" action="" method="post"> <input type="file" name="file" data-index="1" size="1" class="J_uploadFile"> </form></div>
javascript 代码如下所示,依赖jQuery,自行修改
var app = { config:{//配置信息 timeout:6e4,//上传超时时间 istimeout:{},是否超时 upload:{},//上传做clear记录 }, //初始化 init:function(){ var that = this; jQuery('.J_uploadFile').on("change",function(event){ var index = jQuery(this).attr("data-index"),//回调时用的着,也可以是hash值或是token value = jQuery(this).val();//获取input file的值 if(value){//判断是否有值,防止重复,(详细了解input 的change事件触发顺序) if(!/\.(jpg|png|jpeg)$/i.test(value)){//图片格式校验 alert("请上传jpg、png格式的图片!"); return false; } if (window.File && window.FileReader && window.FileList && window.Blob){ //本地校验文件大小,不适用于IE var file = event.target.files; if(file.size/(1024*1024) >5 ){ alert("您上传的图片大于了5M,请用其他工具处理后再上传吧!"); return false; } } //设置主域名 document.domain = "coolpad.com";//跨域上传需要的东西在iframe中用得着 that.doupload(index);//上传操作 } }); }, //上传操作 doupload:function(index){ var that = this; rand = Math.floor(Math.random() * 9999),//生产随机数 url = '图片上传地址,自定义'+'?index='+index+ "&callback=app.callback",//请求地址 id = "uploadIframe" + rand,//iframe的id ifr = jQuery("<iframe name='" + id + "' id='" + id + "' style='display:none'></iframe>");//这个很重要哦 //这就是核心代码了,分部解读 //iframe 是内嵌的的所以不会刷新页面,是实现ajax的常用方法。包括谷歌在内的很多产品上都是怎么搞的上传 //优势不用说:兼容性好。 jQuery(".J_upForm[data-index='" + index + "']")//选中from .attr("target", id)//target 要和 iframe 的id 一样哦 .append(ifr)//iframe 来了 .attr("action", url)//from提交地址 .submit();//提交操作 //防止上传失败,可以设置延时 //这一步根据自己的需要去做 that.config.upload[index] = setTimeout(function() { //页面操作 //that.config.istimeout[index] = true;//默认是false ,超时设置成True },上传失败时间); }, //上传成功回调 callback:function(data){ var that = this; if (that.config.istimeout[data.index]){//查看是否超时 return false; } clearTimeout(that.config.upload[data.index]);//清楚延时 if (data.code == '200'){ //表示上传成功 }else{ //表示上传失败 } }};//dom加载完成后初始化$(function(){ app.init();});
服务器返回信息实例,这个因该是设置格式为 html,不是json哦
<script type="text/javascript"> document.domain="coolpad.com";//因为是内嵌的iframe,所以可以通过设置domain来跨域访问。 parent.app.callback({"code":"200","index":"1","src":"图片地址"});</script>
0 0
- 利用iframe进行ajax文件提交
- jquery ajaxfileupload利用iframe表单提交实现ajax文件上传
- 利用iframe来实现ajax文件上传
- 利用iframe实现伪ajax上传文件
- ajax(iframe)无刷新提交表单、上传文件
- ajax(iframe)无刷新提交表单、上传文件
- 使用iframe做ajax伪提交文件,返回处理结果
- Ajax利用FormData提交文件和数据
- 利用Ajax提交表单
- 利用jquery的ajax提交获得文件下载
- 如何利用formData进行异步提交上传文件
- 【Git & GitHub】利用Git Bash进行第一次提交文件
- 使用AJAX 加 iframe 实现表单无刷新提交并上传文件
- [JAVASCRIPT] IFRAME VS AJAX 异步提交
- dojo090之利用iframe提交表单数据
- 使用隐藏的iframe 隐藏form提交,仿AJax无刷新提交,可以实现无刷新上传文件
- 使用隐藏的iframe 隐藏form提交,仿AJax无刷新提交,可以实现无刷新上传文件
- 利用FormData,进行Ajax请求并上传文件
- Git分布式版本控制系统
- UVa - 11400 - Lighting System Design
- 基于Qt5 描绘物体在二维空间运动轨迹(一)
- 【Android】状态栏通知Notification、NotificationManager详解
- python 字符串 学堂在线 MITx: 6.00.1x 计算机科学和Python编程导论 problem set 2
- 利用iframe进行ajax文件提交
- 解决vc2010添加外部自定义时类,无法打开包含的stdafx.h .
- 【iOS开发】 App上线要求
- 如何将基于Struts2的JavaWeb项目部署到阿里云服务器上
- TheValgrind Quick Start Guide
- Android瀑布流照片墙实现,体验不规则排列的美感
- Java Serializable系列化与反系列化
- 分表用到的一些函数/php mysql 前面补0
- iOS程序员必须知道的Android要点