2011-04-06 44 views
2

我想用uploadData发送表单的附加数据使用scriptData,但它不会发送任何内容到后端PHP脚本。有人可以帮我吗?下面是我想..用Uploadify发送表单数据的问题

的Javascript:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#fileUpload").fileUpload({ 
     'uploader': 'uploadify/uploader.swf', 
     'cancelImg': 'uploadify/cancel.png', 
     'script': 'uploadify/upload.php', 
     'folder': 'files', 
     'multi': false, 
     'displayData': 'speed', 
     'scriptData' : {'name' : $('#name').val()}, 
     onComplete: function (evt, queueID, fileObj, response, data) { 
      alert("Successfully uploaded: "+response); 
     } 
    }); 
}); 
</script> 

HTML:

Name: <input name="name" id="name" /><br /> 
<div id="fileUpload">You have a problem with your javascript</div> 
<a href="javascript:$('#fileUpload').fileUploadStart()">Start Upload</a> | <a href="javascript:$('#fileUpload').fileUploadClearQueue()">Clear Queue</a> 

upload.php的

(我曾经尝试都POST和GET方法,没有作品)。

$name = $_GET['name']; 
or 
$name = $_POST['name']; 

我会非常感谢您的帮助。

回答

0

我想你忘记了'fileDataName' : 'photo'

你也不必'method' : 'post'选项,你可以根据它访问scrpitDataGETPOST

而在后端,您可以通过$_FILES['photo']访问文件;

此外,您还需要检查这些文件是否存在于其相对路径中。

'uploader': 'uploadify/uploader.swf', 
'cancelImg': 'uploadify/cancel.png', 
'script': 'uploadify/upload.php', 
1

我知道这有点迟,但我试图让自己工作,并试图做同样的事情,你做了。

您不能使用jQuery选择在Uploadify的初始设置得到“名”的价值:

'scriptData' : {'name' : $('#name').val()} 

这是一个时间问题。在评估jQuery选择器时,页面刚刚完成加载,并且'Name'文本框(我假设)是空的。上传发生时不会重新评估。

但是您可以在任何时间更新scriptdata,包括上载发生之前:

$('#myUpload').uploadifySettings('scriptData', {'Id':$('#IdTextBox').val() }); 
$('#myUpload').uploadifyUpload(); 

这样的话,你可以提取表单数据,并通过其与上传一起。 这是一个最简单的例子,它通过多个文件上传变得更加复杂,但这应该足以让某人开始。