ie8由于无法使用FormData,想要无刷新上传文件就显得比较麻烦。这里推荐使用jQuery-File-Upload插件,它能够很方便的解决ie8无刷新文件上传问题。(最低兼容到ie6)

jQuery-File-Upload的github:https://github.com/blueimp/jQuery-File-Upload

这里简单介绍一下jQuery-File-Upload的使用。

使用jQuery-File-Upload的基本功能需要引入四个文件:

jquery、jquery.iframe-transport.js、jquery.ui.widget.js、jquery.fileupload.js。

示例:

<!DOCTYPE html>

<html>
<head>
<title>title</title>
<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="/Scripts/jquery.iframe-transport.js"></script>
<script src="/Scripts/jquery.ui.widget.js"></script>
<script src="/Scripts/jquery.fileupload.js"></script>
</head> <body>
<div>
<input id="fileupload" type="file" name="files" data-url="/home/upload" multiple>
</div> <script>
$(function() {
$('#fileupload').fileupload({
dataType: 'json',
/* done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo(document.body);
});
}*/
success: function(result, textStatues) {
console.log(result, textStatues);
},
progressall: function(e, data) {
var progress = (data.loaded / data.total).toFixed(2);
console.log(progress);
} });
});
</script>
</body>
</html>

值得注意的是,success事件和done事件的触发条件都是后台返回字符串“true”,如果返回的不是字符串“true”就不会触发,而是触发complele事件。complete事件的用法和success以及done事件类似。

jQuery-File-Upload会把前端上传的多个文件拆分成多个请求,后台接收的时候要注意即使前端传来多个文件后台也只会收到单个文件而不是文件数组。

如果是ie8及以下使用的时候要注意后台收的到文件名是客户端的文件路径,需要再提取一次文件名。以asp.net后台为例:

        [HttpPost]
public ActionResult Upload()
{
var httpFileCollectionBase = Request.Files;
if (httpFileCollectionBase.Count == )
{
return Content("false");
} var file = httpFileCollectionBase.Get();
string fullPath = Server.MapPath("/upload/"+ Path.GetFileName(file.FileName));
file.SaveAs(fullPath); return Content("true");
}

ie8实现无刷新文件上传的更多相关文章

  1. Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)

    Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...

  2. 使用PHP和HTML5 FormData实现无刷新文件上传教程

    无刷新文件上传是一个常见而又有点复杂的问题,常见的解决方案是构造 iframe 方式实现. 在 HTML5 中提供了一个 FormData 对象 API,通过 FormData 可以方便地构造一个表单 ...

  3. 【JS】ajax 实现无刷新文件上传

    一.摘要 最近在做个东西,需要实现页面无刷新文件上传,目前看到的方法有两种 1) 通过隐藏iframe 实现页面无刷新,适用于不关心上传结果 <form target="hiddenF ...

  4. 实用ExtJS教程100例-009:ExtJS Form无刷新文件上传

    文件上传在Web程序开发中必不可少,ExtJS Form中有一个filefield字段,用来选择文件并上传.今天我们来演示一下如何通过filefield实现ExtJS Form无刷新的文件上传. 首先 ...

  5. Asp.Net 无刷新文件上传并显示进度条的实现方法及思路

    相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认”拿来主义“,只是我个人更喜欢凡是求个所以 ...

  6. SpringMVC ajax技术无刷新文件上传下载删除示例

    参考 Spring MVC中上传文件实例 SpringMVC结合ajaxfileupload.js实现ajax无刷新文件上传 Spring MVC 文件上传下载 (FileOperateUtil.ja ...

  7. Javascrpt无刷新文件上传

    最近工作中遇到上传文件问题,主要需求是一步点击上传,兼容ie8+,当时用的dojox/form/uploader控件,这两天扒了一下源码,明白了原理拿出来分享一下. 总体思路如下: 1.对于支持XML ...

  8. jquery无刷新文件上传 解决IE安全性问题

    很多项目中都需要有文件上传的功能,一般文件上传有几种方式,input file表单上传,flash上传. flash就不说了,能接受flash的就用吧. 下面介绍的这种是基于input file控件的 ...

  9. php利用iframe实现无刷新文件上传功能

    上传原理很简单就是利用表单的打开方式为iframe的name名,这样就可以在当前页面的iframe打来了,实现文件上传,再利用js返回上传结果. form target .在 action 属性中规定 ...

随机推荐

  1. MySQL中的全文索引

    之前曾经发表了一篇关于SQL Server全文索引的文章.现在将MySQL全文索引的配置过程记录一下. Step1:创建Student表 CREATE TABLE `student` ( `id` I ...

  2. ichecked 全选、反选

    //iChecked复选框的全选.反选var checkBox =function (checkParents){ $(checkParents).find('.minimalCheckBox1'). ...

  3. vue 2.0-1

    vue 2.0 开发实践总结之疑难篇   续上一篇文章:vue2.0 开发实践总结之入门篇 ,如果没有看过的可以移步看一下. 本篇文章目录如下: 1.  vue 组件的说明和使用 2.  vuex在实 ...

  4. js之dom_2

    动态脚本1 载入脚本文件 var s = document.createElement("script"); s.src = "test2.js"; s.typ ...

  5. 信号之signal函数

    UNIX系统的信号机制最简单的接口是signal函数.signal函数的功能:为指定的信号安装一个新的信号处理函数. #include <signal.h> void (*signal(i ...

  6. Cygwin下安装vim后,vim中退格键无法正常使用

    问题描述: 在Cygwin中安装完vim后 进入vim,发现上下左右键和退格键都无法正常使用 问题分析: 首先考虑到的就是缺少vim的配置文件,首先查看/etc路径下是否有vim的配置文件 admin ...

  7. The Willpower Instinct

    https://book.douban.com/subject/7043452/ 1.冥想2.健康饮食(低GI.素食为主,未加工食物为主).低GI食物使血糖稳定(蛋白.麦片.粗纤谷类.豆类.水果蔬菜) ...

  8. MySQL完整教程(共8章)

    正文 [第一章] 回到顶部 1.1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引, ...

  9. SnackDown Longest Increasing Subsequences 构造题

    Longest Increasing Subsequences 题目连接: https://www.codechef.com/SNCKPA16/problems/MAKELIS Description ...

  10. 【cocos2d-x 环境配置-Mac配置篇】

    目前我配置的环境需求如下: JDK 1.6 XCode Version 4.6 (4H127) Cocos2d-x 2.2.0  Android Developer  一,下载安装 要配置环境一次性下 ...