【发布时间】:2017-08-25 19:13:00
【问题描述】:
我正在使用Slim 3 PHP 将视频数据写入我的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; }
【问题讨论】:
-
你得到的错误是什么?
-
由于 Target 是不可写的,它没有保存文件的权限,使您移动/复制文件的文件夹可写。 (如 chmod 777 folderpath ,或将 www-data 用户添加到该文件夹并提供组读写访问权限)
-
是的,这是我在网上看到的,但我没有什么后端经验,所以我很好奇有一个关于如何找到这个文件夹来纠正它的建议
标签: php mysql file-upload slim