2016-05-13 19 views
1

ajaxを使用してブラウザにテキストファイルをアップロードしたいが、それを行う方法がわからない。ファイルはアップロードされず、var_dump($ files)はarray(0)を返します。AJAXアップロードファイルが動作しない

HTML:

<form id="uploadsql" action="upload.js" method="post" enctype="multipart/form-data"> 
    <input id="uploadFile" type="text" disabled="disabled" placeholder="Choose File" /> 
    <div class="fileUpload btn btn-primary"> 
     <span>Upload</span> 
     <input id="uploadBtn" name="file" type="file" class="upload"required /> 
    </div> 

    <div class="fileUpload btn btn-primary"> 
     <span>Submit</span> 
    <input type = "submit" id="uploadBtn" class="upload" /></div> 

    </form> 
    <h4 id='loading' >Loading...</h4> 
    <div id="message"></div> 
    <script type="text/javascript"> 
      document.getElementById("uploadBtn").onchange = function() { 
       document.getElementById("uploadFile").value = this.value; 
      }; 
    </script> 

JS:

$(document).ready(function (e) { 
$("#uploadsql").on('submit',(function(e) { 
e.preventDefault(); 
$("#message").empty(); 
$('#loading').show(); 
$.ajax({ 
url: "upload.php", // Url to which the request is send 
type: "POST",    // Type of request to be send, called as method 
cache: false,    // To unable request pages to be cached 
success: function(data) // A function to be called if request succeeds 
{ 
$('#loading').hide(); 
$("#message").html(data); 
} 
}); 
})); 


}); 

はPHP:私はここで何が問題を

<?php 
set_time_limit(0); 
header('content-type: text/html; charset=utf-8'); 
header("access-control-allow-origin: *"); 

include 'connect.php'; 


if(isset($_FILES["uploadBtn"]["type"])) 
{ 
echo 'yes'; 

} else { 
    $files = $_FILES; 
    var_dump ($files); 
} 



?> 

をやっていますか? ありがとうございます!

+2

[jQuery.ajaxでのmultipart/formdataの送信]の可能な複製(http://stackoverflow.com/questions/5392344/sending-multipart-formdata-with-jquery-ajax) – apokryfos

+0

ありがとうございました@apokryfos助けて! – SLFl

答えて

0

あなたのajax呼び出しを見ると、ajaxオブジェクトに対する "データ"属性は含まれません。しかし、私はあなたがこの回答を見ることをお勧めします。jQuery AJAX file upload PHP

関連する問題