zoukankan      html  css  js  c++  java
  • jquery uploadfiy文件资料

    jQuery插件uploadify使用注意事项

    最近因为项目需要上传文件,所以折腾了一下文件上传的插件,因为涉及到跨域,所以一开始便打算使用iframe或flash的,但是用iframe的话有个不好获取页面中的数据,所以决定使用flash。最后选定uploadify这个插件。

    一、使用uploadify插件如何设置跨域上传:

    1、首先要将scriptAccess参数设置为always;

    2、将uploadify.swf文件放置在上传页面的服务器上;

    (注意:这里文件放置的地址不是指文件存储的目标服务器,而是指和html文件所在的服务器,这个官网上的faq里面好像写错了,就因为这个折腾了我好长时间……)。

    3、将一个名为crossdomain.xml的XML文件保存在文件要存储的机器上(目标机器)。

    crossdomain.xml文件的内容如下:

    <?xml version=”1.0″?>

    <!DOCTYPE cross-domain-policy SYSTEM “http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd”>

    <cross-domain-policy>

    <allow-access-from domain=”*” />

    </cross-domain-policy>

    二、使用uploadify如何在上传文件时附加动态数据:

    1、自动上传时动态设置参数,需将methon参数设置 为:‘methon’:‘get’;

    2、获取动态数据时网上基本有2种方法:

    ①一种是在点上传前先调用uploadifySettings函数,再上传,这种方法有个不好的地方就是自动上传时无法获取到动态数据:

    <a href=”javascript:$(‘#uploadify’).uploadifySettings(‘scriptData’,{‘folederid’:folderId}); jQuery(‘#uploadify’).uploadifyUpload()”>开始上传</a>

    ②还有一种方法更为优雅,而且也没有自动上传时无法获取数据的问题。这种方法是重写onSelect方法:

    ‘onSelect’         : function (event, queueID, fileObj) {
    $(“#uploadify”).uploadifySettings(‘scriptData’,{‘folederid’:folderId});
    }
    });

    如有多个数据可以用’,'分隔开来。

    3、然后在可以在接收端利用$_GET['folderid']获取数据了。

    三、其他注意的地方:

    1、提示错误”Security Error” #2049的原因是:
    (1)可能是apache配置问题,获取不到crossdomain.xml。
    (2)当script参数中含有中文时也会有前面的提示,后来同事发现是只要有“%”符号就不行。
    解决办法:将中文部分双重编码即可解决该问题。
    如:var strUrl = encodeURI(encodeURI(“中文测试”));

    2、IE下没有显示,果然是没有安装flash,好像这个要求9.0以上版本的flash。折腾好久……如果引用的文件都能访问,而不显示按钮,可能是没有安装flash,使用该插件要求9.0以上版本的flash。

    3、遇到问题先分别访问crossdomain.xml、uploadify.swf、及其他引入的js文件。确保这些文件都能被访问到,且位置没有放错。

    如遇404错误 可以先看看是不是接收文件的控制器的地址没有写对……

  • 相关阅读:
    Zuul路由转发规则
    logstash数据处理示例
    Spring Cloud问题分析
    Linux定时器工具
    线上系统问题定位
    spring-data-redis读写分离
    日志及参数的乱码问题
    Maven中使用本地jar包
    给数据库用户付权
    jira 跟工时有关的配置文件
  • 原文地址:https://www.cnblogs.com/snowhumen/p/2955826.html
Copyright © 2011-2022 走看看