仿iframe效果Aajx文件上传实例


Posted in Javascript onNovember 18, 2016

前段时间在解决ajax上传文件时折腾了好一阵。直接用$.post上传文本信息肯定是没有问题的。但是$.post直接上传图片是不可行的。

后来看到网上的一些解决方案,有现成的ajax上传文件的封装的方法也有利用flash的。flash确实是个好方法 但是不是每个人都会flash的而且下载下来现成的方法要做修改也不是件易事,且文件相对较大。最后只好模拟iframe来实现。发现相当的简单。

html:

<iframe name="ajaxUpload" style="display:none"></iframe> 
<form name="from1" id="from1" method="post" action="url" enctype="multipart/form-data"target="ajaxUpload"> 
 <table> 
  <tr> 
    <td>附件:</td> 
    <td><input type="file" id="document" name="document"/></td> 
  </tr> 
 </table> 
 </form>

这里是重点。要上传文件enctype这个属性不可少,target的值改为iframe的name的值。

下面写一下js代码,我是用的jQuery所以在用的时候载入jquery的库是必不可少的。

$(function(){ 
     if($.browser.msie){ 
       window.form1.submit();}else{ 
       $("#form1").submit();} 
    });

这里是做了一个浏览器版本的判断,因为IE是不太符合规范的一个浏览器,尤其是IE6。IE6是不直接支持$("#idName").submit();这种方式的。

服务端如下,还得返回一个值,直接submit是无法返回值的

public void Upload() 
{ 
  HttpPostedBase ff=Request.Files["document"];//这里是获取上传的文件流,也可以用索引值来表示如果是多个文件的话 
  string fileName=System.DateTime.Now+ff.FileName.ToString();  //这里取出来的文件名是没有后缀的,所以要保存的话还需要取出文件拓展名。这里就不写过细,只是为描述这样一个思路。 
  try 
  { 
    SaveAs(documentPath+fileName+extendtionName); 
    Response.Write("<script type='text/javascript' type='language'>parent.window.callBackMethod('上传成功');</scrpt>"); 
  } 
  catch 
  { 
    Response.Write("<script type='text/javascript' type='language'>parent.window.callBackMethod('上传失败');</scrpt>"); //parent.window.methodName();这个是JS调用父页的方法。因为现在模拟一个iframe上传文件,这个iframe的作用就是一个中间站的作用。在父页点击上传后通过target会将页面文档流传入iframe中再上传服务端作处理。服务端有响应之后然后再在iframe里面显示出来,而不是直接在父页面显示出结果。这里可能就是一个alert()弹出一个对话框提示一下,如果是这样那么不调父页方法也行。如果想把这提示的内容丰富一点比如弹出个类似人人网的蓝色的对话框之类的。 
   } 
}

模拟iframe其实是页面局部更新,但是页面中的这个iframe没有内容而且还是不显示的,所以它刷新了完全不会影响到整个页面。

以上这篇仿iframe效果Aajx文件上传实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 实用小技巧
Apr 07 Javascript
jQuery EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
Jul 27 Javascript
AngularJS实现按钮提示与点击变色效果
Sep 07 Javascript
再谈javascript常见错误及解决方法
Sep 16 Javascript
js判断出两个字符串最大子串的函数实现方法
Nov 01 Javascript
Vue学习之路之登录注册实例代码
Jul 06 Javascript
JS实现手写parseInt的方法示例
Sep 24 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 Javascript
Layui弹出层 加载 做编辑页面的方法
Sep 16 Javascript
解决vue无法侦听数组及对象属性的变化问题
Jul 17 Javascript
JavaScript之cookie技术详解
Nov 18 #Javascript
js前端解决跨域问题的8种方案(最新最全)
Nov 18 #Javascript
js前端实现多图图片上传预览的两个方法(推荐)
Nov 18 #Javascript
js实时获取窗口大小变化的实例代码
Nov 18 #Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
Nov 18 #Javascript
整理一下常见的IE错误
Nov 18 #Javascript
require、backbone等重构手机图片查看器
Nov 17 #Javascript
You might like
php Memcache 中实现消息队列
2009/11/24 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
PHP内核探索:变量概述
2014/01/30 PHP
PHP常用数组函数介绍
2014/07/28 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
详解JavaScript中的表单验证
2015/06/16 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
Python读写zip压缩文件的方法
2018/08/29 Python
Python检查ping终端的方法
2019/01/26 Python
Django框架使用mysql视图操作示例
2019/05/15 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
HTML5新增属性data-*和js/jquery之间的交互及注意事项
2017/08/08 HTML / CSS
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
Ruby如何创建一个线程
2013/03/10 面试题
房产继承公证书
2014/04/09 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
检讨书范文500字
2015/01/28 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书