SWFUpload

 

SWFUpload整合Flash与JavaScript的一款绚丽的Flash插件~(个人认为比较nice,但是,刚接触的时候发现几个比较重要的东西,希望和大家分享~)

(1)基于Flash,所以必须判断本机flash播放器的版本问题相关的示例代码如下:

 

function CheckFlashPlayer() {
     var version = deconcept.SWFObjectUtil.getPlayerVersion();

      if ( version["major"] > 0 &&version['major'] < 10) {

                  $.messager.alert('提示', '你的flash播放器版本过低!请下载安装新版flash Player!', 'info');
                  return false; }
      else {
                  $.messager.alert('提示', '您还未安装flash Player,请安装 flash Player 10(+)版本!', 'info');
                  return false;}


(2)在带有Session验证的网站后台中,SWFUpload无法正常工作,出现302错误,因为SWFUploadFlash交互,在上传的时候相当于重新开辟一个新的Session进程,无法与原来程序中的 SessionID保存一致,所以,我们就需要”更换“SessionID。下面提出示例代码,这个代码可以放到Global.asax.cs里。

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 (Exception e){
}

 

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 (Exception)
{
}

 

/// <summary>
/// 更新TT,google中的cookie值
/// </summary>
/// <param name="cookie_name"></param>
/// <param name="cookie_value"></param>
void UpdateCookie(string cookie_name, string cookie_value)
{
         HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookie_name);
         if (cookie == null)
         {
                  HttpCookie cookie1 = new HttpCookie(cookie_name, cookie_value);
                  Response.Cookies.Add(cookie1);
         }
         else
        {
                  cookie.Value = cookie_value;
                  HttpContext.Current.Request.Cookies.Set(cookie);
}
}

 

 

(3)SWFUpload的时候,上传时出现一个Error500,是和项目的权限有关系的,因为我项目中用的Form验证,用到的身份认证 deny user="*",所以,可以再webconfig里面把此程序的一般处理程序的权限给放开。

<location path="SingleImportUpload.ashx">  //"SingleImportUpload.ashx"上传文件成功后,交互的一般处理程序。
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

 

 

鄙人刚开始写博客,如有谬处,希望大神给予指导~

 

 

 

 

 

posted @ 2013-10-31 17:38  奈特yi  阅读(331)  评论(0)    收藏  举报