2016-10-31 9 views
0

HTML、JavaScript、およびPHPを使用してファイルをWebサーバーにアップロードしたいとします。ファイルをアップロードする際のJQueryエラー

私のHTMLは次のようになります。私は、アップロードしたファイルを提出するだけで一つのボタンを使用する必要があるため

<form method="post" enctype="multipart/form-data" name="uploadForm"> 
    <input type="file" name="uploadFile" onchange="uploadplz();"> 
    <!-- <input type="submit" name="upload_submit" value="Upload"> --> 
</form> 

送信ボタンがコメントアウトされています。 JavaScript関数を呼び出すonchange属性があります。 JavaScript関数は、AJAX呼び出しを使用してPHP関数を呼び出します。

私はJavaScript/AJAXは、次のようになります。

<script type="text/javascript"> 
    function uploadplz() { 
     $.ajax({ 
      type: "POST", 
      url: "file.php", 
      data: "uploadForm", 
      success: function(response) { 
       alert(response); 
      } 
     }); 
    } 
</script> 

PHPのISSETは次のようになります。

if(isset($_POST["uploadForm"])) { 
    upload_file(); 
} 

PHP関数は次のようになります。

function upload_file() { 
    $dir = "files/"; 
    $target_file = $dir.basename($_FILES["uploadFile"]["name"]); 

    echo $target_file."</br>"; 

    if(move_uploaded_file($_FILES["uploadFile"]["tmp_name"], $target_file)) { 
     echo $target_file." uploaded successfully.</br>"; 
    } else { 
     echo "Error uploading</br>"; 
    } 
} 

2つのボタンを使用して、 PHPは正常に動作します。すなわち、ファイルをアップロードします。ボタンを1つ使用しようとしたときにAJAXが間違っていると仮定しています。 PHP関数はError uploadingメッセージと空のファイル名を返します。

提案がありますか?

答えて

1

Fileオブジェクトではなく、"uploadForm"という文字列のみをアップロードしています。 FormData()をアップロードして<form>をアップロードしてください。jQuery Ajax File Upload

関連する問題