使用Uploadify发送表单数据的问题

时间:2011-04-06 08:03:12

标签: php jquery uploadify

我正在尝试使用scriptData使用uploadify发送表单的附加数据,但它不会向后端PHP脚本发送任何内容。有人可以帮我吗?这是我正在尝试的..

使用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'];

我非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

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

您无法使用jQuery选择器在Uploadify的初始设置中获取“名称”的值:

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

这是一个时间问题。在评估jQuery选择器时,页面刚刚完成加载,并且您的“名称”文本框(我假设)为空。上传时不会重新评估它。

但是,您可以随时更新脚本数据,包括在上传之前:

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

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

答案 1 :(得分:0)

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

此外,您没有'method' : 'post'选项,您可以根据scrpitDataGET访问POST

在后端,您可以按$_FILES['photo'];

访问文件

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

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