Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) 1 [2] 3  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> UploadFiles на сервер, Изображения
Медведь  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2482
Пользователь №: 37963
На форуме: 3 года, 4 месяца
Карма: 27




Цитата (Stave @ 20.09.2016 - 05:26)
Пока остаётся непонятным процесс создания нового и копирования изображения.

if ($what['mime'] == 'image/gif')
$o_im = imageCreateFromGIF($_FILES['filename']['tmp_name']) ;
if ($what['mime'] == 'image/jpeg')
$o_im = imageCreateFromJPEG($_FILES['filename']['tmp_name']) ;
if ($what['mime'] == 'image/png')
$o_im = imageCreateFromPNG($_FILES['filename']['tmp_name']) ;

$t_im = imageCreateTrueColor($newwidth,$newheight);
imageCopyResampled($t_im, $o_im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imageJPEG($t_im, $upload_dir .'/normal_' . $_FILES['filename']['name'],90);


--------------------

Заходил 29.09.2016
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4




Как понимать такой вот момент:


$query_type_file = getimagesize($_FILES['upload_cover']['tmp_name']);

if($query_type_file['mime'] == 'image/png') echo 'png';
if($query_type_file['mime'] == 'image/jpeg') echo 'jpeg';
echo '<br>'.$_FILES['upload_cover']["name"] ;


если грузишь gif или bmp, echo 'jpeg' в ответе


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4





$query_type_file = getimagesize($_FILES['upload_cover']['tmp_name']);
if($query_type_file['mime'] == 'image/png'){
echo 'png';
}else{
echo 'НЕ png';
}


true


$query_type_file = getimagesize($_FILES['upload_cover']['tmp_name']);
if($query_type_file['mime'] == 'image/gif'){
echo 'gif';
}else{
echo 'НЕ gif';
}


false


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4




Так ни к чему и не пришел, куплю скрипт


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Медведь  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2482
Пользователь №: 37963
На форуме: 3 года, 4 месяца
Карма: 27




Цитата (Stave @ 25.09.2016 - 08:24)
Так ни к чему и не пришел, куплю скрипт


Попробуй так:
$query_type_file = getimagesize($_FILES['upload_cover']['tmp_name']);
echo $query_type_file['mime'];

1 = GIF
2 = JPG
3 = PNG
4 = SWF
5 = PSD
6 = BMP
7 = TIFF(байтовый порядок intel)
8 = TIFF(байтовый порядок motorola)
9 = JPC
10 = JP2
11 = JPX


--------------------

Заходил 29.09.2016
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4




Цитата (Медведь @ 25.09.2016 - 08:50)
Цитата (Stave @ 25.09.2016 - 08:24)
Так ни к чему и не пришел, куплю скрипт

Зачем :) *
Попробуй так:
$query_type_file = getimagesize($_FILES['upload_cover']['tmp_name']);
echo $query_type_file['mime'];

Результат тот же) png определяется

jpg, bmp, gif - image/jpeg

проверку на файл не сделать этим способом. Получить размеры да, но запрос:


if($query_type_file['mime'] == 'image/gif') echo 'yes';


не дает true


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Медведь  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2482
Пользователь №: 37963
На форуме: 3 года, 4 месяца
Карма: 27




Попробуй другую картинку.

exif_imagetype возвращает то же самое, что и getimagesize - mime


--------------------

Заходил 29.09.2016
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4




Цитата (Медведь @ 25.09.2016 - 08:50)
[QUOTE=Stave,25.09.2016 - 08:24]

1 = GIF
2 = JPG
3 = PNG
4 = SWF
5 = PSD
6 = BMP
7 = TIFF(байтовый порядок intel)
8 = TIFF(байтовый порядок motorola)
9 = JPC
10 = JP2
11 = JPX

Даже если получать тип и размеры так:


list($width_image, $height_image, $type) = getimagesize($_FILES['upload_cover']['tmp_name']);


то png = 3

jpg,gif,bmp = 2

пожалуйста проверьте кто-нибудь я своем хостинге результат, может у моего хостинга проблемы с библиотекой я на sweb сижу

Денвер тот же результат, но не удивительно


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Медведь  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2482
Пользователь №: 37963
На форуме: 3 года, 4 месяца
Карма: 27






--------------------

Заходил 29.09.2016
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4




нашел причину...

я файлу jpg сменил расширение руками, не сохраняя файл через фотошоп или paint

по-этому php видел его как jpg файл.

Вам не кажется что это может открыть дыру в безопасности, если писать таким методом?


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Медведь  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2482
Пользователь №: 37963
На форуме: 3 года, 4 месяца
Карма: 27




Цитата
я файлу jpg сменил расширение руками, не сохраняя файл через фотошоп или paint

mime определяется не по расширению файла, а по данным в файле,
доверять этим данным вообще нельзя для определения типа изображения.

Если картинка косячная, то imagecreatefromjpeg (PNG, GIF, JPEG) выкинет ошибку.

Вот ещё прочитай - нехватает памяти при загрузке фотографии


--------------------

Заходил 29.09.2016
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4




Цитата (Медведь @ 25.09.2016 - 09:59)
Цитата
я файлу jpg сменил расширение руками, не сохраняя файл через фотошоп или paint

mime определяется не по расширению файла, а по данным в файле,
доверять этим данным вообще нельзя для определения типа изображения.

Если картинка косячная, то imagecreatefromjpeg (PNG, GIF, JPEG) выкинет ошибку.

Вот ещё прочитай - нехватает памяти при загрузке фотографии

imagecreatefromjpeg()


Подразделяется под типы

imagecreatefromgif()
Создаёт новое изображение из файла или URL
imagecreatefromjpeg()
Создаёт новое изображение из файла или URL
imagecreatefrompng()
Создаёт новое изображение из файла иди URL


требуется ли каждому типу указывать свой параметр?


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Медведь  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2482
Пользователь №: 37963
На форуме: 3 года, 4 месяца
Карма: 27




Проверяем, какой тип изображения - mime. На основании чего используем одну из функции - imagecreatefrom для получения нужного ресурса изображения, если выкидывает ошибку, то выводим сообщение - произошла ошибка.


--------------------

Заходил 29.09.2016
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1357
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 12 дней
Карма: 77




Stave
ну определил ты тип, а что дальше хочешь делать ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4




Как-то так:


if(isset($_POST["edit_avatar"])){
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);
error_reporting(E_ALL);


if(is_uploaded_file($_FILES['upload_cover']['tmp_name'])){

list($width_image, $height_image, $type) = getimagesize($_FILES['upload_cover']['tmp_name']);
if(($width_image > 150) || ($height_image > 150)){
echo 'Максимальная ширина и высота изображения 150px, минимальная 120px';
exit();
}
if(($width_image < 120) || ($height_image < 120)){
echo 'Минимальная ширина и высота изображения 120px, максимальная 150px';
exit();
}

if ($type == 4 || $type == 5 || $type == 6 || $type == 7 || $type == 8 || $type == 9 || $type == 10 || $type == 11 || $type == 12){
echo 'Данный файл не поддерживается';
exit();
}else{
if ($type == 1){
$o_im = imageCreateFromGIF($_FILES['upload_cover']['tmp_name']) ;
$_FILES['upload_cover']["name"] = random_name().'.gif';
}
if ($type == 2){
$o_im = imageCreateFromJPEG($_FILES['upload_cover']['tmp_name']) ;
$_FILES['upload_cover']["name"] = random_name().'.jpg';
}
if ($type == 3){
$o_im = imageCreateFromPNG($_FILES['upload_cover']['tmp_name']) ;
$_FILES['upload_cover']["name"] = random_name().'.png';
}

$name_dir = $_SESSION['auth_userid'];
$dir = "/content/images/usersava/".$name_dir;
$uploaddir = $_SERVER['DOCUMENT_ROOT'].$dir;

if (!file_exists($uploaddir)){
mkdir($uploaddir, 0755, true);
}

move_uploaded_file($_FILES['upload_cover']['tmp_name'], $uploaddir .'/'. $_FILES['upload_cover']['name']);
$ReGenerateImage = imageCreateTrueColor($width_image,$height_image);
imageCopyResampled($ReGenerateImage, $o_im, 0, 0, 0, 0, $width_image, $height_image, $width_image, $height_image);
imageJPEG($ReGenerateImage, $_FILES['upload_cover']['name'],90);

$save_file = $uploaddir."/".$_FILES['upload_cover']['name'];
}

}
else{
echo 'Ошибка при попытке загрузить недопустимым способом.';
exit();
}
}


function random_name(){
$file_name = '';
$chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ23456789';
$numChars = strlen($chars);
for ($i = 0; $i < 10; $i++) {
$file_name .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $file_name;
}


Это сообщение отредактировал Stave - 25.09.2016 - 15:59


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) 1 [2] 3  Ответ в темуСоздание новой темыСоздание опроса