我正在使用AJAX构建上传文件(CSV)的功能。这只是一个粗略的代码,因为我正在工作,目前正在学习一个教程。我使用XAMPP作为服务器端语言
执行后,我收到一条显示(对象FormData)的警报,除此之外,上传目录在提交文件后为空。项目目前有三个项目。 (上传文件夹,index.php和upload.php)
HTML
<form method="post" enctype="multipart/form-data">
<input id="file-uploading" type="file" name="fileUploading" />
<button id="upload" value="upload">Upload</button>
</form>
JAVASCRIPT
$('#upload').on('click', function() {
var file_data = $('#file-uploading').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
alert(form_data);
$.ajax({
url: 'upload.php',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(){
console.log('success');
}
});
});
PHP
<!doctype html>
<html>
<body>
<?php
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error' . $_FILES['file']['error'] . '<br/>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
}
?>
</body>
</html>
答案 0 :(得分:0)
我测试成功。我认为“上传”权限不对。你应该这样做:
sudo chown -R www-data:www-data uploads
答案 1 :(得分:0)
我认为你错过了表单上的enctype属性。
enctype属性指定在将表单数据提交给服务器时应如何编码表单数据。
<form method="post" enctype="multipart/form-data">
// your content
</form>
希望这会有所帮助..