<td width="55%" height="605" colspan="2" rowspan="2">Не получается ограничить размер загружаемой странички. Может есть какие-то дополнения. Зарание большое спасибо.
<?php function foo($photo) {
if(!empty($photo['img'])) {
$ImgInfo = getimagesize($photo['img']['tmp_name']);
#тип картинки
$types = array('image/jpeg','image/png','image/gif');
if(!in_array($ImgInfo['mime'],$types)) echo('Картинка должна быть формата JPEG,GIF или PNG');
#размер картинки
if($ImgInfo['mime']['size']>10) echo('Картинка больше ');
if($ImgInfo[0] > 5000 || $ImgInfo[1] > 7000 || empty($ImgInfo[0]))
echo('Ширина должна быть меньше 50 и высота меньше 70 пикселей');
else { #размер нормальный
$ImgName = 'avatars/'; #путь к картинкам
$ImgName .= $_SESSION['user_data']['email'].'.'.substr($ImgInfo['mime'],6);
if(move_uploaded_file($photo['img']['tmp_name'],$ImgName))
echo 'Фотография успешно загружена!';
else echo 'Произошла ошибка при загрузке фотографии.';
}
}
}?>
<form method="post" enctype="multipart/form-data">
<input type="file" name="img" />
<input type="submit" name="upload" value="Загрузить" />
</form>
<?php
if(isset($_POST['upload'])) {
foo($_FILES);
}
?>
Спустя 1 час, 42 минуты, 40 секунд (12.09.2012 - 10:17) killer8080 написал(а):
А может лучше ресайз делать?
Спустя 17 минут, 13 секунд (12.09.2012 - 10:34) walerus написал(а):
killer8080 Думаю не совсем то что хочет ТС, ресайз дело хорошее, но а если файл подсунут 50Мб ))).
От сюда уже "плясать" в нужном направлении...
echo "Размер файла: ".filesize($name).' байт';
Спустя 7 минут, 20 секунд (12.09.2012 - 10:42) killer8080 написал(а):
Цитата (walerus @ 12.09.2012 - 10:34) |
killer8080 Думаю не совсем то что хочет ТС, ресайз дело хорошее, но а если файл подсунут 50Мб ))). |
Большие файлы можно отрезать на уровне php, через настройку upload_max_filesize, а без ресайза, это как то не серьезно. Представь что ты пытаешься загрузить аватару размером 100X120 пискселей, а тебе в ответ - "слишком большая картинка", как ты к этому отнесешься, как рядовой юзер? Полезешь в фотошоп картинку в размер вгонять? А если это чужой комп, где нибудь в интернет кафе, и никакого софта для этого под рукой нет? Юзабельность прежде всего
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спустя 3 минуты, 6 секунд (12.09.2012 - 10:45) walerus написал(а):
killer8080 Согласен, со стороны юзабилити ты прав. По теме, я малость ошибся, ТС не того хотел что я написал, вот поправил его скрипт:
Про ресайз Братуха, тут была кучка примеров, поиском по сайту можно найти то что тебе нужно ;)
<td width="55%" height="605" colspan="2" rowspan="2">
<?php
function foo($photo)
{
if(!empty($photo['img']))
{
$ImgInfo = getimagesize($photo['img']['tmp_name']);
#тип картинки
$types = array('image/jpeg','image/png','image/gif');
if( !in_array( $ImgInfo['mime'],$types ) )
{
// echo('Картинка должна быть формата JPEG,GIF или PNG');
return array( 'ERROR' => true, 'msg' => 'Картинка должна быть формата JPEG,GIF или PNG');
}
#размер картинки
if($ImgInfo['mime']['size']>10)
{
// echo('Картинка больше ');
return array( 'ERROR' => true, 'msg' => 'Картинка больше' );
}
if($ImgInfo[0] > 5000 || $ImgInfo[1] > 7000 || empty($ImgInfo[0]))
{
// echo( 'Ширина должна быть меньше 50 и высота меньше 70 пикселей' );
return array( 'ERROR' => true, 'msg' => 'Ширина должна быть меньше 50 и высота меньше 70 пикселей' );
}
else
{
#размер нормальный
$ImgName = 'avatars/'; #путь к картинкам
$ImgName .= $_SESSION['user_data']['email'].'.'.substr($ImgInfo['mime'],6);
if(move_uploaded_file($photo['img']['tmp_name'],$ImgName))
{
//echo 'Фотография успешно загружена!';
return array( 'ERROR' => false, 'msg' => 'Фотография успешно загружена!' );
}
else
{
// echo 'Произошла ошибка при загрузке фотографии.';
return array( 'ERROR' => true, 'msg' => 'Произошла ошибка при загрузке фотографии.' );
}
}
}
}
?>
<form method="post" enctype="multipart/form-data">
<input type="file" name="img" />
<input type="submit" name="upload" value="Загрузить" />
</form>
<?php
if(isset($_POST['upload']))
{
$foo = foo($_FILES);
if ( $foo['ERROR'] )
{
// Выводим сообщение об ошибке
echo "<font color=red><b>" . $foo['msg'] . "</b></font><br>\n";
}
else
{
// Выводим сообщение об удачной загрузке
echo "<font color=green><b>" . $foo['msg'] . "</b></font><br>\n";
}
}
?>
Про ресайз Братуха, тут была кучка примеров, поиском по сайту можно найти то что тебе нужно ;)
Спустя 7 минут, 27 секунд (12.09.2012 - 10:52) killer8080 написал(а):
walerus
тег <font> устаревший, его лучше не использовать, а в целом OK
.
тег <font> устаревший, его лучше не использовать, а в целом OK
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
Спустя 50 минут, 16 секунд (12.09.2012 - 11:42) Братуха написал(а):
Спасибо всем за ответы буду тестировать, а когда я плюсики смогу делать?
Спустя 9 минут, 39 секунд (12.09.2012 - 11:52) Братуха написал(а):
Цитата (walerus @ 12.09.2012 - 10:45) |
killer8080 Согласен, со стороны юзабилити ты прав. По теме, я малость ошибся, ТС не того хотел что я написал, вот поправил его скрипт:
Про ресайз Братуха, тут была кучка примеров, поиском по сайту можно найти то что тебе нужно ;) |
walerus выводит ошибк уследующего содержания:"Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in Y:\home\test2.ru\www\skins\tpl\register\form_redact_info.tpl on line 19" а про размер картинки даже ни чего не сказал, хоть я и загружал 2,3 мегабайта
Спустя 55 минут, 13 секунд (12.09.2012 - 12:47) Игорь_Vasinsky написал(а):
смотрим в $_FILES так
открываем для себя много нового.
echo '<pre>' . print_r($_FILES, 1) . '</pre>';
открываем для себя много нового.
Спустя 1 час, 58 секунд (12.09.2012 - 13:48) walerus написал(а):
Игорь_Vasinsky
Цитата |
открываем для себя много нового. |
Интересного и не изведанного
![laugh.gif](http://phpforum.su/html/emoticons/laugh.gif)
Спустя 28 минут, 58 секунд (12.09.2012 - 14:17) Братуха написал(а):
Ну и что дает этот массив?
Спустя 59 минут, 42 секунды (12.09.2012 - 15:17) killer8080 написал(а):
Цитата (Братуха @ 12.09.2012 - 14:17) |
Ну и что дает этот массив? |
А откуда ты файлы извлекать собирался?
![blink.gif](http://phpforum.su/html/emoticons/blink.gif)
Цитата (Братуха @ 12.09.2012 - 11:42) |
а когда я плюсики смогу делать? |
когда количество постов будет больше 10-ти, если не ошибаюсь.
Спустя 13 минут, 10 секунд (12.09.2012 - 15:30) walerus написал(а):
Братуха Почитать про $_FILES