2009-12-28 23 views
1

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

反正有这个吗?

非常感谢!

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

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

现在它的工作..

回答

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> 
+0

嘿,感谢您花时间帮忙! 我一直在尝试你的onOpen建议,但它似乎并不想更新默认值..但我会继续尝试使用此功能,但。似乎做的方式.. – user239237 2009-12-28 18:12:13

+0

@pixeline:OnSelect工作!但是我用这种方法看到的唯一问题是如果用户在完成选择图像后更改了项目。它不会更新。可能需要在uploadify函数之外创建一个方法! – user239237 2009-12-28 18:20:27

+0

只需注册一个点击处理程序和您上传按钮,即可更新输入的设置。点击(功能(){/ *获取表单值并更新uploadifySettings * /});''('。upload')。 – prodigitalson 2009-12-28 19:22:19

0

旁边放更新onOpen中的scriptData的代码,你也可以在开始上传之前完成。如果您将auto设置为false,则可以完成此操作,因此您需要手动拨打uploadifyUpload()

看看在this thread接受的答案。

相关问题