PHP move_uploaded_file успешно загружает, но возвращает false

Я пытаюсь создать загрузку для изображения на веб-сайт. Я также пытаюсь изменить размер изображения перед записью в каталог. Изображения загружаются нормально, но по какой-либо причине функция move_uploaded_file возвращает false, даже если файл действительно загружается. Пожалуйста, посмотрите мой код ниже:

$fileType = $_FILES['photo_one']['type'];

//This gets all the other information from the form
$pic=($_FILES['photo_one']['name']);
$tmppic = ($_FILES['photo_one']['tmp_name']);
$front=uniqid (rand (),false);
$newpic=$front.'_'.$pic;
$newtmppic=$front.'_'.$tmppic;if($fileType == 'image/jpg' || $fileType == 'image/jpeg' )
{
$tmppic = ($_FILES['photo_one']['tmp_name']);
$src = imagecreatefromjpeg($tmppic);
}
else if($fileType == 'image/png')
{
$tmppic = ($_FILES['photo_one']['tmp_name']);
$src = imagecreatefrompng($tmppic);
}
else
{
$src = imagecreatefromgif($tmppic);
}list($width,$height)=getimagesize($tmppic);

$newwidth='700px';
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);

imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

//This is the directory where images will be saved
$target = "../secure/profile_images/";
$newtarget = $target . basename($newpic);

imagejpeg($tmp,$newtarget,100);

//Writes the photo to the server
if(move_uploaded_file($tmp, $newtarget))
{

//Tells you if its all ok
header('Location: Picture.php#A1');
}
else {
//Gives an error if its not
echo "Sorry, there was a problem uploading your file.";
}

Вместо перенаправления на Picture.php на экране появляется сообщение «Извините, при загрузке файла произошла ошибка». Тем не менее, когда я иду, чтобы посмотреть изображение на веб-сайте, я вижу, что изображение успешно там. Я проверил журналы ошибок, и там ничего не отображается, поэтому я в растерянности. Любые советы или мысли приветствуются!

1

Решение

Проблема в том, что вы создаете образ с imagejpeg($tmp,$newtarget) который создает образ и сохраняет его по указанному пути, и вы пытаетесь переместить тот же файл, который уже создан и хранится на сервере. imagejpeg создаст изображение и сохранит его на сервере без использования move_uploaded_file функция. если вы хотите проверить, был ли файл создан, удалите move_uploaded_file функция со следующим кодом.

//Writes the photo to the server
if(imagejpeg($tmp,$newtarget,100))
{

//Tells you if its all ok
header('Location: Picture.php#A1');
}
else {
//Gives an error if its not
echo "Sorry, there was a problem uploading your file.";
}
1

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

Других решений пока нет …

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