Я использую обычный php (MVC) и пытаюсь загрузить файлы (файлы любого типа), но при использовании функции «move_uploaded_file» всегда возвращается false
Я пытался изменить цельПуть несколько раз с постоянным URLROOT (цель моего сайта), чтобы указать его вручную, но ничего не работает!у меня есть три файла .htaccess, если необходимо, я опубликую его содержимое, если это так.
public function uploadvideo($id){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$data = [
'order_id' =>$id,
'errors' => '',
'video_name'=> uniqid()
];
try{
if(empty($_FILES)){
throw new Exception('Invalid upload');
}
switch ($_FILES['file']['error']){
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_NO_FILE:
throw new Exception('No file uploaded');
break;
case UPLOAD_ERR_INI_SIZE:
throw new Exception('file is too large');
break;
default:
throw new Exception('An error occurred');
}
if($_FILES['file']['size'] > 20000000){
throw new Exception('Video size exceded must be below 21 MB');
}
if(empty($data['errors'])){
//$destination = URLROOT . "/public/uploads/" . $_FILES['files']['name'];
$destination = "/public/uploads" . $_FILES['files']['name'];
if(move_uploaded_file($_FILES['file']['tmp_name'],$destination)){
if($this->adminModel->uploadVideo($data)){
flash('post_message','video uploaded');
redirect('admins/index');
}else{
die('something went wrong');
}
}else{
// flash('post_message','uploading error');
var_dump($_FILES);
var_dump('xxx');
var_dump($destination);
var_dump($data);
throw new Exception('unable to move uploaded file');
// redirect('admins/index');
}
}else{
flash('post_message',$data['errors']);
redirect('admins/index');
}
} catch(Exception $e){
$data['errors'] = $e->getMessage();
}
}else{
redirect('orders/index');
}
}
и мою форму:
<form method="post" enctype="multipart/form-data" action="<?php echo URLROOT;?>/admins/uploadvideo/<?php echo $order->order_id;?>">
<div>
<input type="file" name="file" id="file">
</div>
<input type="submit" value="upload" class="btn btn-warning"/>
</form>
я ожидаю, что это перенаправит меня на индекс, но этовозвращает false здесь немного моего процесса отладки (var_dump):
array(1) { ["file"]=> array(5) { ["name"]=> string(6) "22.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(14) "/tmp/phpj4ScyG" ["error"]=> int(0) ["size"]=> int(144743) } } string(3) "xxx" string(15) "/public/uploads" array(3) { ["order_id"]=> string(5) "20076" ["errors"]=> string(0) "" ["video_name"]=> string(13) "5cecf6fea5632" }