2016-06-27 5 views
-2

私はこれに関する多くの記事を調査していますが、まだ問題が発生しています。そのため、質問を投稿することにしました。AJAXとPHPを介してHTML形式からサーバーにファイルをアップロードしようとしていますか?

は、私は、ファイルの入力を持つHTMLフォームがあります。

<?php 

$uploaddir = 'path'; 
$uploadfile = $uploaddir . basename($_FILES['fileAdd']['name']); 
echo $uploadfile; 

if (move_uploaded_file($_FILES['fileAdd']['tmp_name'], $uploadfile)) { 

    ... 

}else{ 

... 

} 

?> 
:データを扱う

var form = $('AddFile')[0]; 
var formData = new FormData(form); 

$.ajax({ 

     url: "AddFile.php", 
     type: 'POST', 
     data: formData, 
     cache: false, 
     dataType: 'json', 
     contentType: false, 
     processData: false, 
     success: function(data){ 

      alert("file uploaded!"); 

    ... 

とPHP:

<form id='AddFile' action='AddFile.php' method='post' enctype='multipart/form-data'> 

    <input type='file' id='fileAdd' name='fileAdd'> 

    Friendly Name: <input type='text' id='friendlyname-Add'> 

</form> 

を私がアップロードするファイルを準備し、いくつかのJavaScriptを持っています

+0

:理由は$ _FILES内['error']パラメータがあります意図した 'folder/FILE.jpg'。それはあなたの本当の宣言です。フィードバックのために –

+0

ありがとうございます。私は誤って別のフォルダにファイルを保存したので、AJAXの参照は空でした。それを修正し、今すぐ動作します! – faalbane

答えて

0

Typo:

var form = $('AddFile')[0]; 
       ^---no # 

#または.がない場合、jqueryは明らかに存在しない<AddFile>タグを探しています。

PHPコードでエラー処理を最小限に抑えたとしても、アップロードが実行されていないことがわかりました。 `それには末尾にスラッシュはありませんし、あなたのPHPはfolderFILE.jpg``としてではなくことを翻訳している。一つのこと、 `$ uploaddir =「パス」については

if($_FILES['fileAdd']['error'] !== UPLOAD_ERR_OK) { 
    die("Upload failed with error code " . $_FILES['fileAdd']['error']); 
} 
+0

両方のボタンが[* ignore ... *]に設定されていると思います(http://stackoverflow.com/questions/38061249/trying-to-upload-a-file-from-html-form-to-server -via-ajax-and-php#comment63561500_38061249) –

+0

フィードバックに感謝します。私は#を追加しました。また、誤って別のフォルダにファイルを保存してしまったので、AJAX参照が空であることがわかりました。それを修正し、今すぐ動作します! – faalbane

関連する問題