昨天在为朋友的 百居易旅游网使用uploadify插件解决上传文件过程中,在尝试调用动态更新配置参数的方法uploadifySettings()时,总是抛出一个“updateSettings is not a function”错误。

解决过程如下:

使用uploadify动态修改参数的方法。
$("#uploadify").uploadifySettings('scriptData',{'name':newName,'age':newAge});
是总是抛出“updateSettings is not a function”的错误。

经过仔细研究源代码及翻阅资料,发现了问题所在,描述如下:
如果 浏览按钮没有显示的时候,调用动态更新参数的方法uploadifySettings就会报此错误。

例子:
<div style=" display:none;">
<input type="file" name="uploadify" id="uploadify" />
</div>

说明: 浏览按钮被包裹在一个隐藏(style=" display:none;")的div中。这种时候调用uploadifySettings就会报错。

解决:
1. 先将 浏览按钮显示出来<div style=" display:block;">。貌似废话,因为你一定要使用这个按钮来操作上传文件,否则也不用写这个插件了。
2. 在参数配置中配置onselect事件:
$("#uploadify").uploadify ({
'uploader'       : uploadify.swf',
'script'            : 'upload/',
'scriptData'     : {'name':name,'age': age},
'method'         : 'Get',
'onSelect'         : function (event, queueID, fileObj)
{
$("#uploadify").uploadifySettings('scriptData',{'name':getName(),'age':getAge()});
}
});
这样,浏览按钮先显示了,可以调用uploadifySettings方法了,然后在浏览窗口选择文件的时候触发动态更新参数的方法。
3. 解决问题。。