javascript - 使用 PHP move_uploaded_file() 时出错

标签 javascript php post xmlhttprequest

我对 php 比较陌生,我正在尝试使用 move_uploaded_file() 函数。

我首先从一些 javascript/jquery 向 php 文件发送一个 HTTP POST 请求,如下所示,其中包含一个音频 blob....我的 php 文件托管在 Microsoft 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>

<?
?>

但是,当尝试移动文件时,它没有成功,我得到了回显

problem moving uploaded file

完整的帖子回复在这里

Array ( [audio-blob] => Array ( [name] => blob [type] => audio/ogg [tmp_name] => D:\local\Temp\phpA897.tmp [error] => 0 [size] => 15755 )

) problem moving uploaded file Test

有人知道为什么文件移动没有发生吗?

谢谢

最佳答案

您的代码是否有足够的权限写入/Users/Liam/PhpRecordings/

尝试运行此代码并将输出添加到此答案的注释中:

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

根据作者的进一步评论,$uploadDirectory 的写入权限存在问题。 SO - Write permissions on mac 上也有类似的问题

关于javascript - 使用 PHP move_uploaded_file() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35828072/

相关文章:

java - 如何在spring中创建postmapping方法,以便客户端只需要输入部分对象而不是完整对象?

javascript - 将新日期与 mySql 格式的字符串中的日期进行比较

javascript - 在 Cloud Functions for Firebase 中删除节点时未调用 onDelete

javascript - 在模型更改时刷新 Dojo MVC 组不适用于复杂对象

php - 将数组放入 PHP 中的 WHERE 子句而不命中 X 次 Postgres

php - 使用 pdo_mysql 时浏览器中出现意外结果

java - 有任何简化此帖子的提示吗? ( java )

javascript - RxJS skipWhile bool 值为真

php - 使用 mysql 根据单击的复选框/单选按钮提取 8 列中的 1 列

jquery - 处理异步请求的最佳方式是什么