Изображение не загружается из-за пределов каталога

1

Здесь я использую php для загрузки изображения в базу данных. Также я хочу добиться сжатия, прежде чем сохранять его в соответствующей папке.

Проблема:

Я вижу, что он работает на изображениях, уже присутствующих в каталоге, а не на любом случайном изображении, находящемся вне каталога (images/)

Любая помощь в исправлении кода оценивается.

<?php
if(isset($_POST['submit']))
{
  if (isset ($_FILES['new_image']))
   {     
    $imagename = $_FILES['new_image']['name'];
    $source = $_FILES['new_image']['tmp_name'];
    $target = "images/".$imagename;
    $imagepath = $imagename;
    $source_url=$source;

   function compress_image($source_url, $destination_url, $quality) {
        $info = getimagesize($source_url);
        if ($info['mime'] == 'image/jpeg') 
        {
         $image = imagecreatefromjpeg($source_url);
         imagejpeg($image, $destination_url, $quality);
        }elseif ($info['mime'] == 'image/gif'){ 
          $image = imagecreatefromgif($source_url);
          imagegif($image, $destination_url, $quality);
     }
    elseif ($info['mime'] == 'image/png') 
    {$image = imagecreatefrompng($source_url);
      imagepng($image, $destination_url, $quality);
    }


    return $destination_url;
}

$source_photo = "images/" . $imagepath;
$dest_photo = ""images/sml_" . $imagepath;

$d = compress_image($source_photo, $dest_photo,70);
echo '
<div style="float:left;margin-right:10px">
    <img src="'.$source_photo.'" alt="" />
    <br />'.filesize($source_photo).' Bytes
</div>

<div style="float:left;">
    <img src="'.$dest_photo.'" alt="" />
    <br />'.filesize($dest_photo).' Bytes
</div>
';
 }}
?>
  • 0
    проблема конкатенации строк здесь $dest_photo = ""images/sml_" . $imagepath; вместо $dest_photo = "images/sml_" . $imagepath;
  • 0
    Попробовал это не сработало @JulioSoares
Теги:

2 ответа

0

Здесь функция move_uploaded_file ($ source, $ target); может быть использован, он перенесет файл в соответствующую папку, и проблема будет решена.

0

Кажется, ваш код в порядке. Он говорит, что папка не существует,

  • 0
    Предупреждение: getimagesize (images / Black-Desktop-Wallpaper.jpg): не удалось открыть поток: нет такого файла или каталога в E: \ xampp \ htdocs \ xampp \ 2 \ w1.php в строке 24 Это ошибка, которую он выдает для любое изображение andom @Jitendra Kumar. Балла

Ещё вопросы

Сообщество Overcoder
Наверх
Меню