4

好的,我不能将所有代码发布到这里,因为它只是不必要的。但这就是问题所在。

我有一个选项卡式对话框(ui.tabs),其中包含一个用于上传文件的uploadify 表单。然而,在较早的选项卡上,我检查了单选按钮的状态,以确定是只允许图像文件还是 Flash 文件。

我已经在 $(document).ready 中预先初始化了 uploadify:

$("#uploadify").uploadify({params});

...包括“fileDesc”和“fileExt”参数。就其本身而言,它工作正常。但是一旦它被初始化,我希望使用以下方法更改设置:

$("#uploadify").uploadifySettings('fileDesc','blah blah');
$("#uploadify").uploadifySettings('fileExt','.ext');

...但是当我这样做时,Firebug 会喷出以下内容:

document.getElementById(a(this).attr("id") + "Uploader").updateSettings 不是函数 http://localhost/projectname/Javascript/jquery.uploadify.v2.1.0.min.js 第 26 行

现在显然uploadify本身没有问题,但我在这里可能是一个彻头彻尾的面条。发生这种情况是因为它认为“#uploadify”尚未初始化吗?

4

6 回答 6

3

您应该在此线程中看到已接受的答案。关键是调用$("#uploadify").uploadifySettings();内部上传启动处理程序,或表单提交处理程序。

总的来说,js代码应该是这样的:

jQuery(function($){

  //make uploadify
  $("#uploadify").uploadify({params});

  //handle form submit
  $("#form").submit(function(e){
    //prefent form submit
    e.preventDefault();

    //change the uploadify setting, ex. scriptData
    $("#uploadify").uploadifySettings("scriptData", {'file_id': '345'});

    //start upload
    $("#uploadify").uploadifyUpload();

  });
});

这段代码对我有用,我希望它适用于你的情况。表单提交可以替换为另一个函数,例如在uploadify网站的示例脚本中存在的函数startUpload。

于 2010-01-05T11:15:27.713 回答
1

我正在努力解决同样的问题。

Uploadify 论坛上的某个人认为这是与父元素具有样式 display:none 的情况有关的错误。

http://www.uploadify.com/forum/viewtopic.php?f=7&t=2163

于 2009-12-04T18:44:04.243 回答
0

在 jquery 对话框中使用 Uploadify 时出现此错误。

解决方案是在创建对话框后初始化 Uploadify。

于 2011-03-31T16:58:41.733 回答
0

IE 可以缓存uploadify.swf 文件,由于某些原因,这会导致某些用户失败。在 Uploadify 设置配置中,修改“uploader” URL 以在查询字符串中包含唯一值以防止缓存:

'上传者': '/Content/uploadify.swf?nocache=' + new Date().getTime()

这为我解决了这个问题。

于 2011-05-12T17:45:55.633 回答
0

您假设 #uploadify 尚未初始化。你把你的uplaodify代码放入

$(document).ready(function() { ... });

?

于 2009-12-02T13:57:11.787 回答
-1

尝试

$("#uploadify").uploadifySettings({fileDesc: 'blah blah', fileExt: '.ext'});
于 2009-12-02T13:04:53.250 回答