【问题标题】:uploadify 3 Select file not working in ie9uploadify 3 选择文件在 ie9 中不起作用
【发布时间】:2011-11-07 00:26:55
【问题描述】:

我用上传器创建了一个页面。作为上传者,我使用 Uploadify 3。该代码适用于除 IE9 之外的所有浏览器。当我在兼容模式下打开 IE 9 时,它正在工作。在 IE9 中,我无法按下上传按钮。它显示,但对点击没有反应。所以没有打开文件选择对话框。在 Opera、chrome 和 FF 中,该按钮有效,当我单击文件时,会显示打开对话框。

Flash 正在 IE9 中运行。 (版本 11,0,1,152)(youtube 正在运行)

当我右键单击按钮时,我没有得到 Flash 信息。当我在所有其他浏览器中执行此操作时,我会得到 Flash 信息。当我在 youtube 中(在 ie9 中)右键单击时,我还会获得 Flash 信息....?

这是我上传的 jquery 代码:

 $(document).ready(function() { 
    $('#fileInput').uploadify({ 
        'swf': '/Content/Scripts/uploadify3/uploadify.swf', 
        'uploader': '/nl-nl/Attachment/Upload', 
        'cancelImage': '/Content/Scripts/uploadify3/uploadify-cancel.png', 
        'checkExisting': '/nl-nl/Attachment/Check', 
        'multi': true, 
        'buttonText': 'Upload', 
        'postData' :{'RelationId' : '@cookie'}, 
        'sizeLimit': 2147483647, 
        'auto': true, 

        onError: function(a, b, c, d) { 
            if (d.status == 404) 
                alert("Could not find upload script. Use a path relative to: " + "<?= getcwd() ?>"); 
            else if (d.type === "HTTP") 
                alert("error " + d.type + ": " + d.status); 
            else if (d.type === "File Size") 
                alert(c.name + " " + d.type + " Limit: " + Math.round(d.sizeLimit / 1024) + "KB"); 
            else 
                alert("error " + d.type + ": " + d.text); 
        }, 
        onUploadComplete: function() { 
            $("#Grid").data('tGrid').ajaxRequest(); 

        } 
    }); 
});

我做错了吗?这是闪存错误吗?还是别的什么?

【问题讨论】:

    标签: jquery asp.net flash asp.net-mvc-3 uploadify


    【解决方案1】:

    当您将下载的 swf 替换为整个路径时,它会起作用

    http://www.uploadify.com/uploadify/uploadify.swf
    

    这不是优雅的解决方案,但它确实有效。 我只在 localhost 有这个问题。

    现在选择按钮在 IE 中完美运行,但出现安全错误。 要解决它,您需要在根目录中添加 crossdomain.xml 文件。

    所有域的示例 crossdomain.xml(仅用于测试)

    <?xml version="1.0"?>
    <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
    <cross-domain-policy>
      <site-control permitted-cross-domain-policies="all"/>
      <allow-access-from domain="*" />
      <allow-http-request-headers-from domain="*" headers="*"/>
    </cross-domain-policy>
    

    或尝试在 Global.asax 文件中添加行 在 RegisterRoutes 方法中添加这一行

      routes.IgnoreRoute("crossdomain.xml");
    

    【讨论】:

    • 刚刚遇到了同样的问题。我用实时路径替换了我的 swf 路径,它立即工作..
    • 谢谢!我一直在为 yonks 调试这个!对我来说,我必须更改路径并添加 crossdomain.xml(路由行不起作用)。
    【解决方案2】:

    不知道真正的问题,但对于遇到此问题的其他人。它在部署后工作,只是不在调试器模式下。

    【讨论】:

    • 是的,我也遇到了同样的问题,删除了 flash 并重新安装了以前的版本,一切都很好。
    • 我认为是新的flash,我准备在IE中降级flash进行测试。
    • 如果是新的闪存,他们启用了“仅在 IE 9 中不本地运行”策略或类似的东西。
    猜你喜欢
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    相关资源
    最近更新 更多