2017-01-19 17 views
1

AJAXを使用してファイル(CSV)をアップロードする機能を構築中です。これは私が働いており、現在チュートリアルに従っているので、大まかなコードです。私はサーバ側の言語のためのXAMPPを使用していますAjaxファイルのアップロードがディレクトリに保存されていません

実行後、私は(FormDataをobectで)表示し、それを除いて、ファイルを提出した後に空であるというアラートを得ています。現在、プロジェクトには3つの項目があります。

enter image description here

HTML(アップロードフォルダのindex.phpとupload.php)

<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

あなたのフォーム要素は、enctypeを宣言、すなわち<フォームのenctype =「マルチパート/フォームデータを」>必要 – jeff

+0

ええ、私のフォーム要素の内側にあなたがそれを言及する前にすることを宣言しました。同じ結果が得られました – clestcruz

+0

'$( '#ファイルアップロード')。ファイル[0];' –

答えて

0

私はsuccessful.Iが考える "アップロード" の権限をテストするにはright.Youが何をすべきではありません。

にsudoのchown -R WWW-データ:WWW-データのアップロード

0

私はあなたが逃していると思いますフォームのenctype属性

enctype属性は、フォームデータをサーバーに送信する際にエンコードする方法を指定します。

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

・ホープ、このことができます。..

+0

以前は同じ結果が得られました – clestcruz

+0

アップロードディレクトリのアクセス許可を変更してみてください。それを777に設定してください。 – Amit

+0

あなたはサーバー側からファイルのパスを読むことができますか? – Amit

関連する問題