2016-03-06 36 views
1

我對php比較陌生,我試圖使用move_uploaded_file()函數。使用PHP時出錯move_uploaded_file()

我首先從發送一些javascript/jQuery的一個HTTP POST請求到PHP文件與音頻BLOB如下....我的PHP文件是微軟Azure服務器上託管...

mediaRecorder.ondataavailable = function(e) { 

    var fileType = 'audio'; 
    var fileName = 'test.ogg'; 

    var formData = new FormData(); 
    formData.append(fileType + '-filename', fileName); 
    formData.append(fileType + '-blob', e.data); 
    // e.data is the audio blob 

    var request = new XMLHttpRequest(); 
    request.onreadystatechange = function() { 
    if (request.readyState == 4 && request.status == 200) { 
     console.log('wooo'); 
    } 
    }; 
    request.open('POST', myserver/Test.php'); 
    request.send(formData); 
    } 

我的PHP代碼拿起這個職位的要求,似乎接收文件沒有錯誤

<?php 
    print_r($_FILES); 
    $temp = $_FILES['audio-blob']['tmp_name']; 
    $name = $_FILES['audio-blob']['name']; 


     if (isset($_FILES["audio-blob"])) { 

      $fileName = $_POST["audio-filename"]; 
      $uploadDirectory = 'C:/Users/Liam/PhpRecordings/'; 

      if (move_uploaded_file($temp, $uploadDirectory . $fileName)) { 
       echo("file moved!!!!"); 
      } 
      else 
      { 
       echo(" problem moving uploaded file"); 
      } 
     } 
?> 
<html> 
<body> 
Test 
</body> 
</html> 

<? 
?> 

然而,當試圖移動它不會成功的文件,我得到的回聲

問題動上載的文件

全文後響應是這裏

陣列( [音頻團塊] =>數組 ( [名稱] =>團塊 [型] =>音頻/ OGG [tmp_name的值] => d:\本地\ TEMP \ phpA897.tmp [錯誤] => 0 [尺寸] => 15755 )

)移動上傳文件的問題測試

有沒有人知道文件移動不出現的原因?

感謝

回答

0

是否有足夠的權利對你的代碼寫入/Users/Liam/PhpRecordings/

嘗試運行此代碼,並添加到輸出的評論這個答案:

echo file_put_contents('/Users/Liam/PhpRecordings/test.txt', 'testing_writing_to_file'); 

根據筆者的進一步的評論有與寫權限問題$uploadDirectory。 也有類似的問題SO - Write permissions on mac

+0

運行此代碼後......沒有任何回聲? – LiamWilson94

+0

查看文件夾的屬性後,確實顯示所有「寫入」權限都被選中。 – LiamWilson94

+0

所以你的php代碼不能寫入這個位置。也許文件系統權限太嚴格 –