| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Графика > Добавление аватара |
| Автор: Рыжий 15.3.2007, 19:23 | ||
| Нужно организовать загрузку аваторов на сайт. Как сделано на винграде?? Если юзер вводит url, картинка загружается на сервер? (можно пример кода?) Спасибо.
|
| Автор: PARROT 15.3.2007, 19:57 |
| Если пользователь вводит урл, то его картинка висит где-нибудь, а не грузиться на форум. Для загрузки на форум используйте форму html, с проверкой на размер файла. Для примера пользуйте поиск. |
| Автор: mishaSL 15.3.2007, 20:07 | ||
Очень просто: Читаешь бинарные данные с данного урла (через сокеты или curl), сохраняешь в файл и все... Добавлено @ 20:11 Как пример так:
Далее переменныу $img сохраняешь в нужный тебе файл. Добавлено @ 20:12 И если будешь сохранять, а не выводить, то не забудь убрать header(); |
| Автор: Рыжий 16.3.2007, 02:11 | ||
| Немного покопавшись в функциях нашел интересную опцию: imagecreatefrom***() Может использовать в качестве параметра URL. (если в php.ini включена опция fopen wrappers) Значит мы можем:
После чего мы можем как угодно манипулировать изображением. |
| Автор: PARROT 16.3.2007, 09:35 | ||
1) Значит не будет его аватара. 2) Проверять на размер аватара (как известно аватары на винград загружаеются не более чем 5кб помоему) 3) Потом есть загрузка не только с компа юзера, но и по предоставленной ссылке. |
| Автор: mishaSL 16.3.2007, 11:56 | ||||
Очень плохая идея. Во-первых, эта опция на большенстве хостингов отключена. Во-вторых, посмотри эту информацию: http://vingrad.ru/PHP-PHPNETHTTP-003044 В третих, чем не устраивает, сначало сохранить, можно во временную директорию сохранить, а потом ресайзить и т.д. Еще раз пример кода с сохранением:
А дальше с сохнаненной картинкой делаешь все, что душе угодно. |
| Автор: Рыжий 21.3.2007, 02:27 |
| mishaSL, А если требуется проверить размер файла перед закачкой, если он слишком большой - чтобы даже не браться закачивать? Нашел опцию CURLOPT_INFILESIZE прописал значение 10Kb (10240) - если передавать увесистую картинку - все равно пропускает. Как быть? |
| Автор: Serkys 21.3.2007, 08:27 | ||||
При отправке через POST файл не закачивается. Чтобы его закачать, надо после вызывать move_uploaded_file() или copy(). А размер файла хранится в $_FILES['filename']['size']. Проверить его элементарно:
|
| Автор: Рыжий 21.3.2007, 14:33 |
| Serkys, Нет, мы не о том говорим. Или это я не о том думаю... |
| Автор: Serkys 21.3.2007, 14:49 | ||
Как проверить перед закачкой я написал. Или тебе в php.ini надо? |
| Автор: mishaSL 21.3.2007, 14:55 |
| Serkys, Рыжий имел ввиду загрузку удаленного файла зная его url. Рыжий, я вижу два варианта: 1. еще до загрузки получить заголовки и проверить там Content-Length если он больше нужного то не загружать файл. В данном подходе есть один минус заголовок Content-Length естьне всегда, к примеру его часто не бывает когда изображение генерируется скриптом. Но это мне кажется оптимальный вариант. 2. Воспользоваться функцией curl_getinfo() при указании константы CURLINFO_SIZE_DOWNLOAD мы получим кол-во закаченных байт. Соответственно мы можем получить эти данные только после выполнения закачки файла. |
| Автор: Рыжий 21.3.2007, 15:28 |
| mishaSL, Буду использовать первый вариант, если его нет - после закачки можно использовать хоть filesize(). |
| Автор: mishaSL 21.3.2007, 16:13 |
filesize() можно использовать уже после сохранение файла, а я предлогал во втором варианте проверять до сохранения, но после загрузки. Я думаю он оптимален |
| Автор: wolfmessing 25.6.2007, 09:48 | ||||
У меня такая трабла, '".$result['avatar']."' -- это путь до аватарки, но она категорически не хочет выводица на экран. В БД записался этот путь, показывает имя, ид, мессагу, и тему, а на аватаре пустое место Чо интересно, просто эхом выводица
|