Slim PHP上载目标路径不可写

Slim PHP上载目标路径不可写,php,mysql,file-upload,slim,Php,Mysql,File Upload,Slim,我正在使用slim3php将视频数据写入我的iOS应用程序。由于某种原因,我在尝试将数据写入我的MySQL数据库时收到一个错误 我的图像端点没有问题,只是我的视频端点 我的代码如下: function uploadEventVideo($req, $res, $args) { global $db; $user_id = validateUserAuthentication($req); if($user_id) { $files = $req->getUploadedFiles

我正在使用
slim3php
将视频数据写入我的
iOS
应用程序。由于某种原因,我在尝试将数据写入我的
MySQL
数据库时收到一个错误

我的图像端点没有问题,只是我的视频端点

我的代码如下:

function uploadEventVideo($req, $res, $args) {
global $db;

$user_id = validateUserAuthentication($req);
if($user_id) {
    $files = $req->getUploadedFiles();

    if (isset($files['media_photo'])) {
        $media_photo_url = 'Photo_' . generateRandomString(40) . '.jpg';
        $files['media_photo']->moveTo('assets/images/' . $media_photo_url);
    } else {
        $media_photo_url = '';
    }

    if (isset($files['media_video'])) {
        $media_video_url = 'Video_' . generateRandomString(40) . '.mov';
        $files['media_video']->moveTo('assets/videos/' . $media_video_url);
    } else {
        $media_video_url = '';
    }

    $query = $db->prepare('insert into tblEventMedia (media_user_id,
                                                      media_event_id,
                                                      media_photo_url,
                                                      media_video_url,
                                                      media_type)
                                              values (:media_user_id,
                                                      :media_event_id,
                                                      :media_photo_url,
                                                      :media_video_url,
                                                      "VIDEO")');
    $query->bindParam(':media_user_id', $user_id);
    $query->bindParam(':media_event_id', $args['id']);
    $query->bindParam(':media_photo_url', $media_photo_url);
    $query->bindParam(':media_video_url', $media_video_url);
    if($query->execute()) {
        $query = $db->prepare('select * from tblEventMedia where media_id = :media_id');
        $query->bindParam(':media_id', $db->lastInsertId());
        if($query->execute()) {
            $media = $query->fetch(PDO::FETCH_NAMED);
            $media['media_is_read'] = true;
            $newRes = makeResultResponseWithObject($res, 200, $media);
        } else {
            $newRes = makeResultResponseWithString($res, 400, $query->errorInfo()[2]);
        }
    } else {
        $newRes = makeResultResponseWithString($res, 400, $query->errorInfo()[2]);
    }
} else {
    $newRes = makeResultResponseWithString($res, 401, 'Your token has expired. Please login again.');
}

return $newRes; }

确保
assets/images/
可由Web服务器写入

如果您在Ubuntu/Debian平台上托管,很可能这会起作用:


$cd{项目的根目录}
$mkdir-p资产/图像
$chgrp www数据资产/图像
$chmod g+rws资产/图像

您会遇到什么错误?由于目标不可写,因此它没有保存文件的权限,请将移动/复制文件的文件夹设置为可写。(如chmod 777 folderpath,或将www数据用户添加到该文件夹并提供组读写访问)是的,这是我在网上看到的,但我没有什么后端经验,因此我很好奇,在我的情况下,有人建议如何查找此文件夹以更正它。文件夹不存在。