Как реализовать загрузку 'нужной' JPG картинки на сервер?

MasterYan

Новичок
Как реализовать загрузку 'нужной' JPG картинки на сервер?

Тоесть нужно:
1. определить является ли эта картинка JPG файлом, и соответствует ли она нужному нам разрешению.
2. загрузить и переименовать картинку в формате типа id.jpg


Заранее спасибо.
 

duburlan

Новичок
PHP:
if(in_array($_FILES['image']['type'],array(
  		'image/jpeg',      // Opera, FF
  		'image/jpg',        // эт уже от себя добавил мало ли ))
  		'image/pjpeg'))){  // IE
    	copy($_FILES['image']['tmp_name'],'new_image_name.jpg');
    	$img_size = getimagesize('new_image_name.jpg');
    	print 'Width = ' . $img_size[0] . '<br> Height = ' . $img_size[1];    
} else {    	
    	print 'Неверный формат файла';    
}
 

dimagolov

Новичок
duburlan, орбит, дирол?

если у меня файл zzz.jpg, который содержит все нули, то что твой код сделает? сотри свой код и не позорься.
 

kruglov

Новичок
duburlan
А что выдаст ваш код, если ему скормить jpeg-картинку, переименованную в xxx.php ?
 

duburlan

Новичок
dimagolov

во первых эт пример.. чтобы человек знал куда копать...

"1. определить является ли эта картинка JPG файлом, и соответствует ли она нужному нам разрешению. "

в моем примере нет проверки на "нужное нам разрешение" - так как разжевывать до таких мелочей - уж слишком было...

ну а так поставить условие типа если $img_size[0]== чему_то - и соотвественно и высоту так же проверяем - твой "забитый нулями файл" вернет размерчики типа 0 0 - и проверочку не пройдет...

П.С. с предохранителя сними рембо... в реале ты б так со мной не разговаривал...
 

HraKK

Мудак
Команда форума
duburlan
Давай ты не будешь угрожать? А будешь вести себя попроще, когда тебя лицом в твой же говнокод опускают?
 

duburlan

Новичок
НраКК
а я никому и не угрожал... парень попросил помощи - я ответил..
если кому то не нравится мой код - это ваши личные проблемы

MasterYan - запусти этот код - отправь пару файликов (забитых нулями - с разным разрешением и/или расширением) - главное не "готовое решение" - а понимание того что делаешь
PHP:
<pre>
<?php
	print_r($_POST);
	print_r($_FILES);
	if(in_array($_FILES['image']['type'],array(
		'image/jpeg',   // Opera, FF
		'image/jpg',    // эт уже от себя добавил мало ли ))
		'image/pjpeg'))){  // IE
		$img_size = getimagesize($_FILES['image']['tmp_name']);
		print 'Width = ' . $img_size[0] . '<br>Height = ' . $img_size[1] . '<br>';
		if($img_size[0]=='100' && $img_size[1]==100){
			copy($_FILES['image']['tmp_name'],'new_image_name.jpg');
			print 'Файл скопирован - <img src="new_image_name.jpg" alt=""><br>';
		} else {
			print 'Разрешение файла отлично от 100*100';
		}
	} else {
		print 'Неверный формат файла';
	}?>
</pre>
<form name="" action="" method="post"  enctype="multipart/form-data">
	<input type='file' name='image'>
	<input type="submit" value="Send">
</form>
 

duburlan

Новичок
была строчка:
if($img_size[0]=='100' && $img_size[1]==100){

чтобы протестить вывод картинки сделал из нее
if(1){ //$img_size[0]=='100' && $img_size[1]==100){

потом уже убрал два слеша - и забыл убрать единичку со скобочкой

П.С. старый добрый индусский код эт
PHP:
  $bool=false;
  if (strlen($bool)==3) print 'yes';
  else print 'no';
на а код
PHP:
if(1){$img_size[0]=='100' && $img_size[1]==100){
- выдаст ошибку о лишней скобке.. и не более.. а подправленный вариант - на "индусский" никак похож... (вот если только его как строку переменной присвоить а потом загнать в eval() =)
 

zerkms

TDD infected
Команда форума
а подправленный вариант - на "индусский" никак похож
он похож уже тем, что тип файла ты смотришь в заведомо недостоверной инфе, вместо того, чтобы взять и посмотреть а что же в действительности прислали
 

Фанат

oncle terrible
Команда форума
лично я бы применял все три способа.
поскольку все они недостоверные

-~{}~ 22.09.08 14:59:

плюс клиентом проверял, чобы зря не грузить. если такая возможность имеется
 

waldicom

Новичок
Автор оригинала: zerkms
...вместо того, чтобы взять и посмотреть а что же в действительности прислали
имеются ввиду какие-либо существующие расширения или просто копировать несколько первых байт файла и проверять на соответствие официальному заголовку?
А то мне тоже надо проверять пришедшие файлы, а как 100%-но проерить - пока не знаю.
 

nerezus

Вселенский отказник
П.С. с предохранителя сними рембо... в реале ты б так со мной не разговаривал...
Бугага )
Т.е. если кто-то тупит, то надо сначала узнать его родословную, вес в жиме лежа и длину, а только потом указывать, что он накосячл? )
Ну тебе самому не смешно? Но вместо того, чтобы извиниться, ты угрожаешь) Это выглядит так забавно ;)
 
Сверху