ASP.NET MVC 使用Jquery Uploadify 在非IE浏览器下Http Error的解决方案

解决Uploadify上传控件在非IE浏览器中不工作,需要做如下2步修改:

1.Global.asax文件中,实现Application_BeginRequest函数:

void Application_BeginRequest(object sender, EventArgs e)
        {
            try
            {
                string session_param_name = "ASPSESSID";
                string session_cookie_name = "ASP.NET_SessionId";
                if (HttpContext.Current.Request.Form[session_param_name] != null)
                {
                    UpdateCookie(session_cookie_name, HttpContext.Current.Request.Form[session_param_name]);
                }
                else if (HttpContext.Current.Request.QueryString[session_param_name] != null)
                {
                    UpdateCookie(session_cookie_name, HttpContext.Current.Request.QueryString[session_param_name]);
                }
            }
            catch { }

            try
            {
                string auth_param_name = "AUTHID";
                string auth_cookie_name = FormsAuthentication.FormsCookieName;
                if (HttpContext.Current.Request.Form[auth_param_name] != null)
                {
                    UpdateCookie(auth_cookie_name, HttpContext.Current.Request.Form[auth_param_name]);
                }
                else if (HttpContext.Current.Request.QueryString[auth_param_name] != null)
                {
                    UpdateCookie(auth_cookie_name, HttpContext.Current.Request.QueryString[auth_param_name]);
                }
            }
            catch { }
        } 

        private void UpdateCookie(string cookie_name,string cookie_value)
        {
            HttpCookie cookie =HttpContext.Current.Request.Cookies.Get(cookie_name);
            if(null== cookie)
            {
                cookie =new HttpCookie(cookie_name);
            }
            cookie.Value= cookie_value;
            HttpContext.Current.Request.Cookies.Set(cookie);}
        } 

2. 前台js修改,注意红色代码:

//upload
        var auth = "@(Request.Cookies[FormsAuthentication.FormsCookieName]==null?string.Empty:Request.Cookies[FormsAuthentication.FormsCookieName].Value)";
        var ASPSESSID = "@(Session.SessionID )";
        $(‘#fileInput1‘).uploadify({
            ‘uploader‘: ‘/Content/uploadify.swf?var=‘ + new Date().getTime(),
            ‘script‘: ‘/Money/ImportMoneyInDue‘,
            ‘folder‘: ‘/UploadFiles‘,
            ‘cancelImg‘: ‘/Content/cancel.png‘,
            ‘scriptData‘:  { ASPSESSID: ASPSESSID, AUTHID: auth },
            ‘fileExt‘: ‘*.xls;*.csv‘,
            ‘fileDesc‘: ‘*.xls;*.csv‘,
            ‘sizeLimit‘: 1024 * 1024 * 4, //4M
            ‘multi‘: false,
            ‘onComplete‘: fun
        }); 

这样就可以了。

出自:http://www.cnblogs.com/shunyao8210/archive/2012/07/02/2572801.html

时间: 2024-07-30 13:51:21

ASP.NET MVC 使用Jquery Uploadify 在非IE浏览器下Http Error的解决方案的相关文章

ASP.NET MVC使用jQuery无刷新上传

昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说,把源代码一一照搬的复制.难道它不能移值至ASP.NET MVC应用程序吗?Insus.NET想了一下,源代码是html+ashx的,它一定能的. 网友发送能正常运行的代码给Insus.NET...... 重点的script文件:http://download.cnblogs.com/insus/M

ASP.NET MVC使用jQuery来POST数据至数据库中

学习ASP.NET MVC程序,结合jQuery客户端代码,Post数据至数据库去.Insus.NET今天写一个完整性的例子. 在数据库中,创建一个表[dbo].[TestUser]: 既然是把数据存入数据库中,得先在数据库创建一个存储过程[dbo].[usp_TestUser_Insert]: 程序与数据库连接以及逻辑处理,使用这个http://www.cnblogs.com/insus/archive/2010/01/23/1654653.html 在MVC中,需要创建一个模型Insus.N

基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转)

效果图:http://code.google.com/p/jquery-placeholder-js/ 演示代码:http://demo.jb51.net/js/2011/jqueryplaceholder/打包下载:http://xiazai.jb51.net/201105/yuanma/jqueryplaceholder.rar 基于jQuery的让非HTML5浏览器支持placeholder属性的代码(转),布布扣,bubuko.com

jquery.uploadify插件在chrom浏览器频繁崩溃问题

jquery.uploadify插件在chrom浏览器频繁崩溃问题,一直困扰了好久,网上很多人说是由于chrom缓存的原因,插件初始化时,需要引用js,而chrom的缓存导致没有没有请求到jquery.uploadify-3.1_min.js,所以引起崩溃,可以在引用js时,加入随机数:<script type="text/javascript" src="/js/jquery.uploadify-3.1_min.js?ver=<?php echo rand(0,

ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图

在ASP.NET MVC 4中,可以很简单地实现针对不同的浏览器自适应布局和视图.这个得归功于MVC中的"约定甚于配置"的设计理念. 默认的自适应 MVC 4自动地为移动设备浏览器和PC设备浏览器进行自适应.针对布局页面,默认的文件名为_Layout.cshtml,这个默认会被所有的浏览器使用.但如果我们希望在移动设备上面,呈现一个不同的布局,只需要添加一个名称为_Layout.Mobile.cshtml的布局页面就可以了.同样的规则,也适用于普通的视图页面.例如Index.cshtm

(转)如何让ActiveXObject( &quot;Microsoft.XmlDom &quot;)对象在非IE浏览器下显示数据?firefox(火狐)

如何让ActiveXObject( "Microsoft.XmlDom ")对象在非IE浏览器下显示数据?firefox(火狐) 2013-09-10 16:01 2152人阅读 评论(0) 收藏 举报 在IE浏览器下,xmlDom对象一般这样被定义: [html] view plaincopy var xmlDom= new ActiveXObject("Microsoft.XMLDOM"); 为了兼容Firefox,需要修改为: [html] view plai

解决mxGraph放大/缩小在非IE浏览器下overlay图标位置不变化的问题

首先要创建一个工具栏,并为工具栏中的放大.缩小按钮定义事件. <div id="toolbar" style="float:left;margin-top:5px;margin-left: 5px;line-height: 35px;"> <img src="src/images/zoomin.gif" action="zoomIn" title="放大" width="16&q

解决jQuery uploadify在非IE核心浏览器下无法上传

之前上传了一个通过Flash实现多文件上传,但是在IE正常运行,FireFox 不能正常上传.经过反复研究学习,之所以firefox和360浏览器无法正常运行,是因为FireFox.chrome.360浏览器等支持HTML5的浏览器不会再文件上传时自动带入session信息和cookie,不共享session. 一.jquery uploadify自我介绍: (1).大家好,我是jquery插件大家族中负责实现异步上传的插件,我不是唯一,只是较好用的一款. (2).我的功能: 支持单文件或多文件

ASP.NET MVC和jQuery DataTable整合

本文包含代码示例说明如何jQuery插件开发者可以集成到ASP.NET MVC应用程序. 下载源代码- 87.4 KB Introduction The jQuery DataTables plug-in is an excellent client-side component that can be used to create rich-functional tables in the web browser. This plug-in adds lot of functionalitie