好的,我希望这将是我关于动态文件上传的一系列Q中的最后一个问题。
我正在使用AjaxFileUpload Plugin并尝试使用我的uploader.php中的FORM数据。问题是$_POST
和$_FILES
都是NULL。
这是我的HTML代码:
<form id="uploadForm" enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="hidden" name="current_path" value="<?php echo $fb->relative_url; ?>" />
<input id="uploadFile" name="uploadFile" type="file" />
<input type="button" class="button uploadImage" value="<?php _e('Upload File') ?>" /> <br />
</form>
这是我的JS脚本:
//File upload
jQuery('.uploadImage').live('click',function() {
ajaxFileUpload();
});
(...)
function ajaxFileUpload() {
jQuery.ajaxFileUpload ( {
url:'../wp-content/plugins/wp-filebrowser/uploader.php',
secureuri:false,
fileElementId:'uploadFile',
dataType: 'json',
success: function (data, status) {
alert('Error: ' + data.error + ' - Respons: ' + data.respons)
},
error: function (data, status, e) {
alert('Error: ' + e);
}
}
)
return false;
}
为了测试我的数据是否被提交,我有以下PHP代码:
$data['error'] = $_POST['current_path']; // Gives me NULL
$data['respons'] = $_FILES['uploadFile']['name']; // Gives me NULL
// Return result in json
echo json_encode($data);
更新
在Pekka的非常好的帮助下(用他那双精美的眼睛),我得到了它的工作!使用正确的代码更新代码。
答案 0 :(得分:3)
您正在分配
fileElementId:'uploadFile',
但您的文件字段实际上并没有该ID。
您的PHP脚本应该在
中查找$_FILES["uploadFile"]["name"]