mysql — переместить загруженное изображение в папку в php (функция move_uploaded_file ())

У меня проблема с перемещением загруженных файлов.

<?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() функция, но я не работаю. Какие-либо предложения?

0

Решение

Напишите это 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

0

Другие решения

Проверьте ваше разрешение на загрузку папки, это должно быть 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";
}

?>
0

  <?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 — имя файла типа ввода

0
По вопросам рекламы [email protected]