使用uploadify向服务器发送其他发布数据时出现问题

时间:2009-12-28 17:31:58

标签: php jquery uploadify

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

到底有没有?

万分感谢!

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

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

现在正在努力..

2 个答案:

答案 0 :(得分:2)

你需要通过uploadify的回调hoock:onOpen或onSelect中的一个来获取用户输入的当前状态。查看他们的documentation是否正确。我猜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>

答案 1 :(得分:0)

除了将代码更新为onOpen中的scriptData之外,您还可以在开始上传之前执行此操作。如果您将auto设置为false,则可以执行此操作,因此您需要手动调用uploadifyUpload()

this thread中查看已接受的答案。