Ajax文件上传未存储在目录

时间:2017-01-19 04:54:00

标签: javascript php jquery ajax

我正在使用AJAX构建上传文件(CSV)的功能。这只是一个粗略的代码,因为我正在工作,目前正在学习一个教程。我使用XAMPP作为服务器端语言

执行后,我收到一条显示(对象FormData)的警报,除此之外,上传目录在提交文件后为空。项目目前有三个项目。 (上传文件夹,index.php和upload.php)

enter image description here

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>

2 个答案:

答案 0 :(得分:0)

我测试成功。我认为“上传”权限不对。你应该这样做:

sudo chown -R www-data:www-data uploads

答案 1 :(得分:0)

我认为你错过了表单上的enctype属性。

enctype属性指定在将表单数据提交给服务器时应如何编码表单数据。

<form method="post" enctype="multipart/form-data">
 // your content
</form> 

希望这会有所帮助..