2012-03-21 48 views
1

我有一个Web窗体应用程序,并正尝试使用uploadify jQuery库ASP.NET - Uploadify在IE中,而不是在FF(AUTH饼干

它工作正常在IE8,但是在FF7没有。 ,FF10或FF3。我放入Upload.ashx的中断点没有命中

我做了相当的搜索,发现它与cookie有关,比如ASPXAUTH,我试图将它添加到'scriptData' ,但没有成功

任何想法

页代码:?

<script type="text/javascript"> 

    $(document).ready(function() { 


     alert($(".hidcook").val()); 
     // <![CDATA[ 
     var id = "55"; 
     var theString = "asdf"; 

     $('#fileInput').uploadify({ 
      'uploader': 'uploadify/uploadify.swf', 
      'script': 'Upload.ashx', 


      'scriptData': { 'id': id, 'foo': theString }, 
      'cancelImg': 'uploadify/cancel.png', 
      'auto': true, 
      'multi': true, 
      'fileDesc': 'All Files', 

      'queueSizeLimit': 90, 

      'buttonText': 'Importar Planilha', 
      'folder': '/uploads', 
      'onAllComplete': function (event, queueID, fileObj, response, data) { 
      } 
     }); 
    }); 
    // ]]></script> 

Upload.ashx:

public class Upload : IHttpHandler, IRequiresSessionState{ 

     public void ProcessRequest(HttpContext context) 
     { 
      try 
      { 
       HttpPostedFile file = context.Request.Files["Filedata"]; //breakpoint 

       int id = (Int32.Parse(context.Request["id"])); 
       string foo = context.Request["foo"]; 
       file.SaveAs("C:\\" + id.ToString() + foo + file.FileName); 

       context.Response.Write("1"); 
      } 
      catch (Exception ex) 
      { 
       context.Response.Write("0"); 
      } 
     } 
+0

试试// <![CDATA [out – Mantisimo 2012-03-21 16:54:59

+0

]已评论。无论如何,不​​起作用。 – 2012-03-21 17:09:29

回答

1

如果你的网站内容是不公开的,添加到web.config授权访问处理程序。

<location path="Upload.ashx"> 
    <system.web> 
    <authorization> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
</location> 

浏览器如何通过flash组件实现文件上传存在一些差异。
IE使用相同的会话。 FF会打开一个新的连接,因此服务器会看到一个正在尝试访问受保护页面的未经过身份验证的用户。

+0

它的工作原理是我设置正确的路径,谢谢!我们为什么? :) – 2012-03-21 19:32:47

+0

@WoF_Angel我完成了答案。 – 2012-03-22 17:14:02

0

我有一个使用MVC的问题,其中up​​loadify没有发布到控制器操作。

这是由于身份验证问题。 Flash由于某种原因创建了它自己的单独的cookie到浏览器,所以如果用户已经使用浏览器(ASPXAUTH)cookie进行了认证,然后swf文件使用它自己的flash cookie(未经过认证)发出单独的请求。

运行小提琴手,看看发生了什么,你可能会发现,该uploadify正在使服务器的请求被重定向到Login.aspx页面。

虽然我不知道为什么会工作,只是IE ?