【问题标题】:Error when using PHP move_uploaded_file()使用 PHP move_uploaded_file() 时出错
【发布时间】:2016-06-20 01:52:55
【问题描述】:

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

我首先从一些 javascript/jquery 发送一个 HTTP POST 请求到一个带有音频 blob 的 php 文件,如下所示......我的 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 代码收到了这个 post 请求,并且似乎收到了没有错误的文件

    <?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:\local\Temp\phpA897.tmp [错误] => 0 [大小] => 15755 )

) 移动上传文件测试问题

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

谢谢

【问题讨论】:

    标签: javascript php post xmlhttprequest


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 查看文件夹的属性后,似乎所有的“写入”权限都被选中了。
    • 所以你的php代码不能写入这个位置。可能是文件系统权限太严格了
    • 如何允许我的 PHP 代码访问文件系统?
    • 有些问题有答案,例如stackoverflow.com/questions/8862345/…
    • 在简单的情况下(仅用于在本地机器上测试)您可以使用命令mkdir /www 创建文件夹/www,然后使用命令chmod 777 /www 为其添加所有权限,然后尝试保存您上传的文件到这个文件夹中。
    猜你喜欢
    • 2011-03-30
    • 2011-12-08
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2012-12-31
    • 1970-01-01
    相关资源
    最近更新 更多