【发布时间】:2015-10-23 19:08:13
【问题描述】:
我在过去 3 小时内尝试了所有建议的解决方案,但没有一个对我有用。请记住,我对 ajax 很陌生。
这是我的 ajax 代码:
var formData = new FormData();
formData.append('file', $('#commercialAnimation')[0].files[0]);
$.ajax({
url : 'includes/upload.php',
type : 'POST',
data : formData,
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
success : function(data) {
console.log(data);
alert(data);
}
});
这是一张表单(它是最后一个默认禁用的表单属性):
<label id="uploadAnimation">Upload your file:</label>
<input type="file" id="myfile" disabled>
这里是应该检索这个文件的 php 类:
include 'db_connector.php';
$fileName = $_FILES['file']['name'];
$fileType = $_FILES['file']['type'];
$fileError = $_FILES['file']['error'];
$fileContent = file_get_contents($_FILES['file']['tmp_name']);
if($fileError == UPLOAD_ERR_OK){
//file uploaded
}else{
//error while uploading
echo json_encode(array(
'error' => true,
'message' => $message
));
}
当我尝试将消息记录到单独的文件中时,php 代码似乎正在工作,但我在任何 xampp 文件夹中都找不到该文件。
此外,来自 ajax 的 alert(data); 不显示任何值。
【问题讨论】:
-
在成功回调中你看到console.log(data) 输出了吗?
-
我看到了弹出窗口,但它是空的
-
$fileName = $_FILES['file']['name'];和$fileType = $_FILES['file']['type'];存储正确的文件名和类型 -
那么...您是否希望在成功回调中注销时数据为 JSON?
-
感谢亚当的建议!我刚刚用
echo json_encode(array( 'error' => true,'message' => "something in return"));更新了我的代码,它现在显示在弹出窗口中,但我仍然找不到上传的文件。