Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вместо .jpg пишет .jpeg

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: сохраняет изображения не правильно
DonQuijote
Отправлено: 07 Сентября, 2015 - 21:02:23
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Здравствуйте!
Нашёл нужный код на Харахабр, но не могу понять почему изображения .jpg сохраняет с расширением .jpeg
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if ($_POST["submit_btn"]){
  4.   //Проверка, действительно ли загруженный файл является изображением
  5.   $imageinfo = getimagesize($_FILES["myfile"]["tmp_name"]);
  6.   if($imageinfo["mime"] != "image/gif" && $imageinfo['mime'] != "image/jpeg" && $imageinfo["mime"] !="image/png") {
  7.   print '<p id="upload_error">Загруженный файл не является изображением</p>';die;
  8.   }
  9.  
  10.   //Сохранение загруженного изображения с расширением, которое возвращает функция getimagesize()
  11.   //Расширение изображения
  12.   $mime=explode("/",$imageinfo["mime"]);
  13.   //Имя файла
  14.   $namefile=explode(".",$_FILES["myfile"]["name"]);
  15.   //Полный путь к директории
  16.   $uploaddir = '../'.$_POST['to_folder'].'/';
  17.   //Функция, перемещает файл из временной, в указанную вами папку
  18.   if (move_uploaded_file($_FILES["myfile"]["tmp_name"], $uploaddir.$namefile[0].".".$mime[1])) {
  19.     print '<p id="upload_ok">Изображение успешно загружено</p>';
  20.   }else{
  21.     print '<p id="upload_error">Произошла ошибка</p>';
  22.   }
  23. }
  24.  
  25. else
  26. {
  27. ?>
  28.         <form action="" method="POST" enctype="multipart/form-data">
  29.         Выбрать файл: <input type="file" name="myfile"/><br/>
  30.         Выбрать папку: <select name="to_folder" size="2">
  31.                 <option value="img/news">папка NEWS</option>
  32.                 <option value="portfolio/preview">подпапка Preview</option>
  33.         </select>        <input type="submit" name="submit_btn" value="Загрузить"/>
  34.         </form>
  35. <?PHP
  36. }
  37. ?>
 
 Top
Viper
Отправлено: 07 Сентября, 2015 - 21:40:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




$mime[1] это и есть расширение файла взятое из mime-типа файла, а оно image/jpeg


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DonQuijote
Отправлено: 07 Сентября, 2015 - 21:47:14
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Viper пишет:
$mime[1] это и есть расширение файла взятое из mime-типа файла, а оно image/jpeg


Так если image/jpeg заменить на image/jpg, то ошибку выдает (что это не картинка) и не загружает
 
 Top
Ts.Saltan
Отправлено: 07 Сентября, 2015 - 22:07:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


Помог: 22 раз(а)




DonQuijote пишет:
image/jpg

такого типа файла не существует
есть image/jpeg
и расширение файлов - .jpeg

предположу, что расширение jpg используют, чтоб вложиться в 3 символа (как было в DOS, и вряд ли это для совместимости, скорее ради эстетичности)

по аналогии - .html и .htm файлы имеют mimetype - text/html

(Отредактировано автором: 07 Сентября, 2015 - 22:10:00)

 
 Top
DonQuijote
Отправлено: 07 Сентября, 2015 - 22:09:27
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Ts.Saltan пишет:
DonQuijote пишет:
image/jpg

такого типа файла не существует
есть image/jpeg
и расширение файлов - .jpeg

предположу, что jpg используют, чтоб вложиться в 3 символа (как было в DOS, и вряд ли это для совместимости, скорее для эстетичности). По аналогии - .html и .htm файлы имеют mimetype - text/html


А как сделать чтобы загружал на сайт в формате jpg?
 
 Top
Viper
Отправлено: 07 Сентября, 2015 - 23:03:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




http://www[dot]differencebetween[dot]inf[dot][dot][dot]een-jpg-and-jpeg

DonQuijote пишет:
Так если image/jpeg заменить на image/jpg, то ошибку выдает (что это не картинка) и не загружает
вы совсем не поняли что нужно сделать.
Делайте замену для этого. Т.е.

CODE (php):
скопировать код в буфер обмена
  1. if ($mime[1] == 'jpeg') {
  2.         $mime[1] = 'jpg';
  3. }

Так понятней?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
armancho7777777 Супермодератор
Отправлено: 08 Сентября, 2015 - 09:01:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Удалить:
PHP:
скопировать код в буфер обмена
  1. $mime=explode("/",$imageinfo["mime"]);
  2. $namefile=explode(".",$_FILES["myfile"]["name"]);

Заменить:
PHP:
скопировать код в буфер обмена
  1. $uploaddir.$namefile[0].".".$mime[1]

на:
PHP:
скопировать код в буфер обмена
  1. $uploaddir.$_FILES["myfile"]["name"]

(Добавление)
А вообще говнокодище то ещё.
Вопрос на засыпку:
что будет, если в getimagesize попадёт файл, не являющийся изображением ?
 
 Top
Viper
Отправлено: 08 Сентября, 2015 - 10:37:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)





armancho7777777 пишет:
А вообще говнокодище то ещё.
DonQuijote пишет:
код на Харахабр

Как бы намекает ;)


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DonQuijote
Отправлено: 08 Сентября, 2015 - 20:10:33
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Спасибо armancho7777777 помогло
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB