У меня проблема с перемещением загруженных файлов.
<?php
$image_name = $_FILES['image']['name'] ;
$target_file = "../uploads/$image_name";
$targetFileForItem = "uploads/$image_name";
move_uploaded_file($_FILES['image']['tmp_name'], $target_file);$sql = "INSERT INTO items (name , description,`price`, `country`, `release`, `condition`, `image`)
VALUES ('$name','$description','$price', '$country', '$date', '$condition', '$targetFileForItem')" ;
?>
переменная $targetFileForItem
работает правильно, и вставляет в мою базу данных очень хорошо, но файл не перемещается в $target_file
папка вар, которая uploads
, Как видите, я использую move_uploaded_file()
функция, но я не работаю. Какие-либо предложения?
Напишите это debug
ini_set('display_errors',1);
error_reporting(E_ALL);
Если ваш код в порядке, проверьте file permissions
Вы можете использовать это
if (is_dir($target_file ) && is_writable($target_file )) {
// do upload logic here
} else {
echo 'Upload directory is not writable, or does not exist.';
}
is_writable
Returns TRUE
если имя файла существует и writable
, Аргумент имени файла может быть именем каталога, позволяющим вам проверить, доступен ли каталог для записи
для получения дополнительной информации прочитайте это http://php.net/manual/en/function.is-writable.php
Проверьте ваше разрешение на загрузку папки, это должно быть 775. Если вы используете FTP, щелкните правой кнопкой мыши на папке и измените разрешение на файл для этой папки на 755.
Если это localhost, то это должно быть проблема пути или имени папки.
И сделайте ваш код таким, чтобы вы могли также обнаружить ошибки.
<?php
$image_name = $_FILES['image']['name'] ;
$target_file = "../uploads/$image_name";
$targetFileForItem = "uploads/$image_name";
// if folder not exists than it will make folder.
if(!file_exists($target_file))
{
mkdir($target_file, 0777, true);
}
if(move_uploaded_file($_FILES['image']['tmp_name'], $target_file))
{
echo "file successfully uploaded";
}
else
{
echo "error in file upload";
}
?>
<?php
$file = $_FILES['profilepic']['name'];
$tmp = $_FILES['profilepic']['tmp_name'];
$ext = pathinfo($file, PATHINFO_EXTENSION);
$image = rand(1000, 1000000).$file;
$path = 'your_path_with_end_slashes/'.$image;
move_uploaded_file($tmp, $path);
$insert = $db->query("INSERT into user (`avatar`) VALUES('$image')");
?>
где avatar — это имя поля вашей таблицы, а profilepic — имя файла типа ввода