汉诺塔少年 2019-05-03 15:08 采纳率: 0%
浏览 434

move_uploaded_file()移动文件失败怎么解决

PHP使用move_uploaded_file()上传文件的时候:
如果上传到/tmp目录下则显示成功。
如果上传到其他目录下则失败。
网上都是是权限的问题,可是我已经将整个文件夹权限
设置成了chmod -R 777 还是失败的。
请问这是什么情况呢?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-09 07:13
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    如果您的文件被移动到了/tmp目录下,那么您可能需要检查是否有足够的权限来写入这个目录。此外,确保在调用move_uploaded_file()之前已经创建了目标目录,并且具有读写权限。

    以下是一个示例代码片段,展示了如何处理此问题:

    <?php
    // 获取上传文件的临时路径
    $tmpPath = $_FILES['file']['tmp_name'];
    
    // 检查目标目录是否存在
    if (!is_dir($targetDir)) {
        mkdir($targetDir, 0755, true);
    }
    
    // 将文件移动到目标目录
    move_uploaded_file($tmpPath, $targetDir . '/' . basename($_FILES['file']['name']));
    

    在这个例子中,我们首先获取了上传文件的临时路径。然后,我们检查目标目录是否已存在。如果没有,我们就创建它。接着,我们使用move_uploaded_file()函数将文件移动到目标目录。

    请注意,这只是一个基本的例子,实际的解决方案可能取决于您的具体环境和需求。例如,您可能还需要考虑文件名、扩展名等信息,以及如何处理错误和异常。

    评论

报告相同问题?