| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Грамотно загрузить картинку |
| Автор: fakeman 11.6.2009, 16:24 | ||
| День добрый. При регистрации есть такой код
Картинку он загружает кидает её на сервер вроде всё как надо, но вот как сделать что бы было ограничение на вес картинки там допустим 2мб и с размер картинки. допустим если уже при выводе картикни из базы писать <img src.. width=150px> картинка по ширине будет растягиваться как бы так и хотелось но если кто прикальнётся и закачает картинку с размерами 1x1000 :| то при отображении будет ужас.. Хотелось бы что бы было постоянный размер на ширину ну 150пх но в тоже время и ограничение на длинну(вроде как такое же на всяких фото сайтах есть), как решить такие проблемы. |
| Автор: bars80080 11.6.2009, 16:51 |
| ну, вес у тебя здесь - $size_name = $_FILES['pic']['size']; можешь просто написать условие if(вес больше разрешённого) то ... во-вторых, в качестве упреждения можно указать в форме <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> для контроля за размерами можно либо просто прочитать размеры сохранённого на сервере файла через getimagesize, либо просто воспользоваться http://forum.vingrad.ru/index.php?showtopic=185566&view=findpost&p=1877225 для приведения изображения к нужному формату (допустим обрезать) |
| Автор: ZTI831 11.6.2009, 16:53 |
| При возникновении трудностей в подобных задачах легче найти ответ в коде бесплатных движков. В VB помню нужная вам обработка встречалась. |
| Автор: fakeman 11.6.2009, 18:20 | ||
bars80080, ну с весом картинки вроде разобрался
что касаеться размера не разобрался :( Но в процессе всего этого появился ещё вопрос, по поводу обновления картинки для юзера(Юзеру захотелось поменять себе картинку, заходит в настройки и там меняет старую на новую). Т.е. это получаеться у меня в базе храниться тока путь к картинки например /img/123.jpg и как мне сделать чтобы при нажатии изменить настройки он путь как бы не менял а картика обновлялась на новую и если юзер решит поменять формат картинки допустим на gif. Тогда как я понимаю надо в базе не тока путь держать но и название картинки 123 ? И получаеться куда девать старую картинку ? удалять ? если да то как ? Добавлено @ 18:32 хотя просто при регистрации можно имя файла указывать не время(как у меня) а id(тока непонимаю как ведь его ещё нету юзер же тока региться) или имя юзера(оно не повторяеться фактически как и id дудет)? И удаление файла делается через такое ? unlink() |
| Автор: bars80080 11.6.2009, 18:38 |
| если пути url и path различаются, то естественно надо держать и физический путь. старую удалять, если пользователю нельзя держать больше одной картинки (функция unlink(); ) |
| Автор: fakeman 11.6.2009, 19:12 | ||
| При регистрации сделал что бы картинке довалось имя юзера а при изменении картинки Получилось такое
прошу вас проверить и если что то может быть не так написать П.С. при данном коде картинка обновляеться визуально тока после того как выйдеш, зайдёш под пругим юзером и обратно зайдёш под своим юзером тока тогда появиться картинка, каторую менял, как можно сделать что бы сразу обновилась не выходя из под юзера ? |
| Автор: supervladislav 11.6.2009, 23:55 |
| простите что суюсь ,но насколько я помню opera ie возвращают раздный mime тип |