2017-05-26 107 views
0

我正在嘗試上傳音頻文件。使用Ajax和PHP上傳音頻文件

正在做什麼是通過Ajax將音頻文件傳遞到PHP,其中上傳和其他插入到我的數據庫將完成。

在通過Ajax傳遞後,我的PHP頁面看不到音頻文件。

<script type="text/javascript"> 
$(function() { 

    $('form').on('submit', function (e) { 

    e.preventDefault(); 

    document.getElementById("load").style.display = "block"; 
    textarea = $('#editor-one').html(); 
    var formData = new FormData($(this)[0]); 
    formData.append("content", textarea); 

    $.ajax({ 
     type: 'post', 
     url: 'verimg.php?ins=newmu', 
     data: formData, 

     cache: false, 
     contentType: false, 
     processData: false, 
     success: function(data){ 
     document.getElementById("load").style.display = "none"; 
     //alert(textarea); 
     jQuery('#get_result').html(data).show(); 
     } 
    }); 
    }); 
}); 

    </script> 

這是我的PHP代碼: 「警告請選擇一個音頻」

if(!isset($_FILES['file'])){ 
    echo '<div class="alert alert-warning"> 
      <strong>Warning!</strong> Please select an audio 
     </div>'; 
}else{ 
    $uploaderror=''; 
    $name = ucfirst($_POST['name']); 
    $artist = $_POST['artist']; 
    $content = $_POST['content']; 
    $genre = $_POST['genre']; 

    $validator = new FormValidator(); 
    $validator->addValidation("name","req","Please fill in Music Name"); 
    $validator->addValidation("category","req","Please Select Artist"); 
    $validator->addValidation("category","req","Please Select Genre"); 
} 

我總是得到。

+0

我認爲你需要看看這個Q&A: https://stackoverflow.com/questions/2320069/jquery-ajax-file-upload – finelog

+0

什麼的了'name' ''field?它是「文件」嗎? –

+0

是的,它是@ LouysPatriceBessette – nsikak

回答

1

我已經改變了你的formData。在你的php代碼中,你試圖檢查全局$ _FILES變量中的'file'鍵,但是在你的formData變量中,音頻文件沒有附加到任何'key'。希望工程:)

<script type="text/javascript"> 
$(function() { 

$('form').on('submit', function (e) { 

    e.preventDefault(); 

    document.getElementById("load").style.display = "block"; 
    textarea = $('#editor-one').html(); 
    var formData = new FormData(); 
    formData.append("file", e.target.files[0]); 
    $.ajax({ 
    type: 'post', 
    url: 'verimg.php?ins=newmu', 
    data: formData, 
    cache: false, 
    contentType: false, 
    processData: false, 
    success: function(data) 
    { 
     document.getElementById("load").style.display = "none"; 
     //alert(textarea); 
     jQuery('#get_result').html(data).show(); 
    } 
    }); 

}); 

}); 

</script> 
+0

我得到相同的錯誤警告!請選擇一個圖片 – nsikak

+0

根據我的經驗,使用XMLHttpRequest和FormData代替AJAX。我認爲存在兼容性問題。 var request = new XMLHttpRequest(); var formData = new FormData(); formData.append(「file」,e.target.files [0]); request.open(「POST」,'verimg.php?ins = newmu',true); //設置其他標頭 request.send(formData); (){ //錯誤 }請求。 –