2016-03-06 89 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代码不能写入这个位置。也许文件系统权限太严格 –