uploadify |即时更改uploadifysettings

时间:2010-10-22 18:57:50

标签: jquery amazon-s3 uploadify

我被困住了。我使用uploadify将多个文件上传到我的s3服务器。我想将每个文件放入一个具有唯一标识符的文件夹。我希望做的是使用这种语法来实现它(注意uuid是一个生成uuids的jquery插件):

'onComplete'  : function(event,queueId,fileObj,response) {
   $('#fileInput').uploadifySettings('folder',$.uuid())
}

我的问题是,当调用此回调时 - 我无法再访问$('#fileInput').uploadifySettings(x,y)我得到它是一个未定义的方法?!

注意的其他uploadify设置:

'auto':  'true'
'multi': 'true'

我将直接上传到亚马逊s3

有没有人碰到这个?关于如何解决的想法?

谢谢!

3 个答案:

答案 0 :(得分:3)

我通过更改scriptData“onSelect”解决了同样的问题,所以当你选择一个新文件时:

onSelect : function(){
            $('#images_upload_file').uploadifySettings("scriptData", {'yourvar': yourvalue });
        },

似乎可以解决这个问题

答案 1 :(得分:1)

我希望我不会完全误解你的问题。

在服务器端这样做不是很容易吗?你必须在服务器端处理上传,这通常涉及以某种方式从临时位置获取上传的文件,确保它不是邪恶的,然后将其复制到最终的休息地点。

在最后一个复制步骤中,您可以轻松地引入一个uuid(在这种情况下,也可以在服务器端生成)。

这是一种有效的方法,还是我错过了你的要求?

答案 2 :(得分:0)

我遇到了同样的问题。经过几个小时的痛苦,我终于通过手动操作传递给flash上​​传对象的flashvars字符串来解决它。

鉴于此HTML元素:

<div id="file_upload" name="file_upload"></div>

我继续使用以下内容启动对该元素的uploadify:

$('#file_upload').uploadify({
    // Empty folder path
    'folder'    : ''
});

这会在您的HTML文件中添加一个<object>元素,其中包含多个<param>子元素。其中一个<param>元素名为“flashvars”,其字符串值包含上载文件夹路径。因此,为了更改文件夹值,我搜索该字符串以查找“folder =”参数,如下所示:

// Find correct <param> element and retrieve it's value
var found = $("#file_uploadUploader").find("param[name=flashvars]").val();

// Search within that value for the specific folder argument using a regex
// and replace find with new_path
found = found.replace(/folder\=.*\/&/, "folder="+new_path+"&");

希望这有帮助。