仿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 仿关机效果的图片层
Dec 26 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
Aug 28 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 Javascript
jQuery性能优化技巧分析
Feb 20 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
Jul 31 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
Jan 26 Javascript
jQuery实现联动下拉列表查询框
Jan 04 Javascript
js实现带进度条提示的多视频上传功能
Dec 13 Javascript
浅谈Node模块系统及其模式
Nov 17 Javascript
vue中element组件样式修改无效的解决方法
Feb 03 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
Apr 21 Javascript
vue动画—通过钩子函数实现半场动画操作
Aug 09 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
深入了解php4(2)--重访过去
2006/10/09 PHP
php在线生成ico文件的代码
2007/10/09 PHP
PHP XML备份Mysql数据库
2009/05/27 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
2012/09/23 PHP
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
初识php MVC
2014/09/10 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
nodejs实用示例 缩址还原
2010/12/28 NodeJs
jQuery版Tab标签切换
2011/03/16 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
基于ssm框架实现layui分页效果
2019/07/27 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
使用Python发现隐藏的wifi
2020/03/04 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
实习护士自荐信
2014/06/21 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
焦点访谈观后感
2015/06/11 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书