26.11.2017, 15:29
|
Кандидат Javascript-наук
|
|
Регистрация: 04.11.2017
Сообщений: 117
|
|
laimas, вы хотите сказать, что если подделают сигнатуру, то вы взломаете сайт ?
|
|
26.11.2017, 15:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Lion777,
это ничем не отличается от getimagesize в плане обдурить.
|
|
26.11.2017, 15:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Lion777
|
что если подделают сигнатуру, то вы взломаете сайт ?
|
Читайте тему еще раз, есть примечание и о взломе, что повторить еще раз? Речь идет о мусоре, это в первую очередь, и во вторую о возможных вставках.
|
|
26.11.2017, 16:04
|
Кандидат Javascript-наук
|
|
Регистрация: 04.11.2017
Сообщений: 117
|
|
Сервер не будут грузить такие осторожности ? )) Это так, чуть дальше от темы )), ведь об этом автор не спрашивал, ну у автора конечно то врятли, а вообще ?
|
|
26.11.2017, 16:13
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Lion777
|
Сервер не будут грузить такие осторожности ?
|
Серверу вообще по барабану чего вы там грузите, ответственность полностью на разработчике. Это как сплошь и рядом при загрузке файла, проверяют то, что после точки, считая, что таким образом все проблемы решены. А то, что можно даже и не напрягаться в таком случае, а просто всякому мусору проставить расширения картинок, и сервер горе разработчика его схавает. Если и вы так будете считать, то и ваш сервер можно завалить мусором.
|
|
26.11.2017, 16:34
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
Не получается. С самого начала, в этот код вставить,
if($im = imagecreatefromstring(file_get_contents('url'))) {
} else {
}
а главное как узнать "узнали палитру - если truecolor"?
И далее:
"В противном случае сохраняем как GIF - file_put_contents(скачанное посредством file_get_contents)."
<?php
$file = 'https://site.ru/img/image.gif';
$current = file_get_contents($file);
$current .= "imgage/1.gif";
file_put_contents($file, $current);
?>
так не получается, тогда как?
|
|
26.11.2017, 17:10
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
if($f = @file_get_contents('https://site.ru/img/image.gif')) {
if($im = imagecreatefromstring($f)) {
//это изображение
imageistruecolor($im)
? imagejpeg($im, 'path/name.jpg', $quality) //сохранение JPEG/PNG -> JPEG
: file_put_contents('path/name.jpg', $f); //сохранение GIF/PNG8 -> GIF
imagedestroy($im);
} else {
//иначе мусор
}
} else //ошибка загрузки
|
|
26.11.2017, 17:24
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
laimas,
спасибо. А переменная $quality устанавливает качество изображения?
|
|
26.11.2017, 17:28
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
Анимация сохранилась в формате jpg - name.jpg Причем работает, может оставить так?
Последний раз редактировалось Sonya, 26.11.2017 в 17:45.
|
|
26.11.2017, 17:57
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Sonya
|
А переменная $quality устанавливает качество изображения?
|
Да, по умолчанию 75%, но можете указать свое, например чтобы уменьшить размер на выходе.
Сообщение от Sonya
|
Анимация сохранилась в формате jpg
|
JPEG формат не поддерживает анимацию, разберитесь что у вас сохранилось.
PS. Это file_put_contents('path/name .jpg', $f); //сохранение GIF/PNG8 -> GIF - результат моего копирования, а должно быть file_put_contents('path/name .gif', $f);
В зависимости от программы просмотра/браузера, не смотря на расширение ПО покажет анимацию так как опирается не на расширение файла, а на его заголовок.
Последний раз редактировалось laimas, 26.11.2017 в 18:08.
|
|
|
|