Я следил за небольшим учебным пособием, чтобы я мог загрузить файл на сервер, этот файл должен быть перемещен в img/profile /, а затем он читается оттуда.Файл загружен, но не перемещен
Мое дерево, как это (IMG и профиль являются папки):
updatepp.php значок-profile.png IMG и профиля внутри IMG
Я пошел в мои папки и проверил разрешений, и он говорит, что я могу писать в этот файл.
Внутри updatepp.php является FCODE для profilepic загружаемого
if(isset($_FILES['profile']) === true){
if(empty($_FILES['profile']['name']) === true){
echo 'please choose a file';
}else{
//checks
$allowed = array('jpg', 'jpeg', 'png', 'gif');
$file_name = $_FILES['profile']['name'];
$file_extn = strtolower(end(explode('.', $file_name)));
$file_temp = $_FILES['profile']['tmp_name'];
if(in_array($file_extn, $allowed) === true){
$file_path = 'img/profile/' . substr(md5(time()),0,10) . '.' . $file_extn;
if(move_uploaded_file($file_temp, $file_path)){
echo "succes " . $file_path;
$result = $db->prepare("UPDATE users SET profile=:profile WHERE user_id=:user");
$result->bindParam(':profile', $file_path);
$result->bindParam(':user', $user);
$result->execute();
}else{
echo "failure";
}
}else{
echo 'incorrect file type. Allowed: ';
echo implode(', ', $allowed);
}
}
}
Файл загружен в базу данных и SucceS сообщения $file_path
отображается на экране. Однако, когда я смотрю в папку, я вижу, что файл НЕ был перемещен.
Я размещаю это на виртуальном клиенте ubuntu с установленным стеком LAMP, и я использую общие папки между хостом и виртуальной машиной.
Я бы предположил, что папка не существует, но это ясно.
$ _SERVER [ 'DOCUMENT_ROOT'] .img/profile/'. substr (md5 (время()), 0,10). '' , $ File_extn; ... попробуйте это. – devpro
Вы проверили где-то загруженное изображение – Butterfly
Возможный дубликат [move \ _uploaded \ _file (...): не удалось открыть поток: нет такого файла или каталога] (http://stackoverflow.com/questions/34541344/move-uploaded-file-failed-to-open-stream-no-such-file-or-directory) – Butterfly