1

我在允许用户上传图像的页面上使用uploadify,以及在其中发送这些图像的类别字段。现在,我看到uploadify 提供了一个“scriptData”方法,它允许我将键值对发送到uploadify.php 脚本。但问题是 scriptData 方法在页面加载(上传初始化)时获取其值。因此,当用户在页面上更改值时,scriptData 仍然只有页面加载时存在的默认值。

有没有办法解决?

太感谢了!

可能的解决方案:我正在进一步阅读手册,发现您可以通过函数调用更改设置。可能在正确的轨道上?

$('#fileInput').uploadifySettings('scriptData', getKeyValuePairs()).uploadifyUpload();

现在正在努力..

4

2 回答 2

2

您需要通过 uploadify 的回调钩子之一获取用户输入的当前状态: onOpen 或 onSelect 。请参阅他们的文档以获取正确的文档。我猜 onOpen 更可靠,因为它会在每次开始上传时检查用户输入的当前状态。不过,您可能需要在上传过程中禁用其他用户输入,或者仍然要求用户提交表单,否则在最后一次上传开始后完成的任何用户输入都将丢失。

无论如何,我在他们的论坛上找到了这个,我会onOpen回调:

$('#fileInput2').uploadifySettings(
'scriptData', 
{'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()}
);

最终实现将是(使用演示代码):

<input id="fileInput" name="fileInput" type="file" />
<script type="text/javascript">// <![CDATA[
$(document).ready(function() {
$('#fileInput').uploadify({
'uploader'  : 'uploadify.swf',
'script'    : 'uploadify.php',
'cancelImg' : 'cancel.png',
'auto'      : true,
'folder'    : '/uploads',
'onOpen' : function(){
$('#fileInput').uploadifySettings(
    'scriptData', 
    {'ext':$('#dirTimeStamp').val(), 'ext2':$('#txtEmail').val()}
    );
}
});
});
// ]]></script>
于 2009-12-28T17:42:53.430 回答
0

除了把更新scriptData的代码放在onOpen里面,你也可以在开始上传之前做。如果您将 auto 设置为 false,则可以完成此操作,因此您需要uploadifyUpload()手动调用。

看看这个线程中接受的答案。

于 2010-01-05T13:26:00.640 回答