我需要使用uploadify脚本发送数据时遇到问题。
第一次,uploadify脚本安装正确,一切正常。但是我需要为mysql和其他人使用上传的数据(通过uploadify脚本)。
以下是我调用uploadify脚本的代码:
<script type="text/javascript">
$(document).ready(function() {
$('#file_upload').uploadify({
'uploader' : '/uplod/uploadify/uploadify.swf',
'script' : '/uplod/uploadify/uploadify.php',
'cancelImg' : '/uplod/uploadify/cancel.png',
'folder' : '/uplod/uploads/',
'auto' : true,
'multi' : false,
'onComplete': function(event, queueID, fileObj, response, data){
var form = document.forms['form'];
var i = 0;
var el = document.createElement("input");
el.type = "hidden";
el.name = "test";
el.id = "test2";
el.value = fileObj.name;
form.appendChild(el); },
'onAllComplete': function(event,data) { document.getElementById('form').submit();},
});
});
</script>
它是关于如何在文件上传后回调的。
这是uploadify.php代码:
<?php
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
move_uploaded_file($tempFile,$targetFile);
echo '0'; // Required to trigger onComplete function on Mac OSX (same for linux and windows as it seems)
}
else { // Required to trigger onComplete function on Mac OSX (same for linux and windows as it seems)
echo '1';
$video = $_POST[test];
$textfield = $_POST[textfield];
echo $video;
echo $textfield;
}
?>
这里是我需要创建的方式,以便我能够开展这项工作。
<form id="form" name="form" method="post" enctype="multipart/form-data" action="uploadify/uploadify.php">
<input id="file_upload" name="file_upload" type="file" />
<input type="text" name="textfield" id="textfield" />
</form>
问题在这里,当我使用enctype="multipart/form-data"
uploadify.php写给我0时,当我删除enctype="multipart/form-data"
给我写信时1.这就是我所需要的。从代码中可以看出,我在uploadify.php的末尾添加了一些愚蠢的代码来测试它。
我认为这不起作用,因为在javascript代码中,我不会在任何地方写入enctype。也许我错了。 我尝试编辑这个:
var form = document.forms['form'].enctype = "multipart/form-data";
但没有,
我也尝试过:
'onAllComplete': function(event,data) { document.getElementById('form').enctype;
document.getElementById('form').submit();},
但又一无所获。欢迎所有帮助...
PS这是测试示例,对于这段代码,我不需要multipart / form-data,但是在测试的项目上,我需要multipart / form-data,因为我正在测试uploadify脚本的小视频上传器,我需要每个视频的封面图片。答案 0 :(得分:1)
尝试:
var form = document.forms['form'];
form.enctype = "multipart/form-data";
而不是
var form = document.forms['form'].enctype = "multipart/form-data";
但是由于你不使用多重上传,我不认为有必要分两步完成(首先发送文件,然后是完整的表格)。 请参阅scriptData - 选项,它允许您同时发送文件和其他数据:
'scriptData' : {'textfield':$('#textfield').val()}