![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Нужно организовать загрузку аваторов на сайт.
Как сделано на винграде?? Если юзер вводит url, картинка загружается на сервер? (можно пример кода?) Спасибо.
Это сообщение отредактировал(а) PARROT - 15.3.2007, 19:56 |
|||
|
||||
PARROT |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2339 Регистрация: 5.1.2005 Где: Спб-ЦарьГрад Репутация: 2 Всего: 50 |
Если пользователь вводит урл, то его картинка висит где-нибудь, а не грузиться на форум.
Для загрузки на форум используйте форму html, с проверкой на размер файла. Для примера пользуйте поиск. -------------------- Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим! |
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 54 |
Очень просто: Читаешь бинарные данные с данного урла (через сокеты или curl), сохраняешь в файл и все... ![]() Добавлено @ 20:11 Как пример так:
Далее переменныу $img сохраняешь в нужный тебе файл. Добавлено @ 20:12 И если будешь сохранять, а не выводить, то не забудь убрать header(); -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
А если юзер изменит картинку по указанному url? Проверять данные в форме html очень небезопасно. Нужно повторно их проверять в php. mishaSL, Сейчас опробую. Это сообщение отредактировал(а) Рыжий - 15.3.2007, 20:41 |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Немного покопавшись в функциях нашел интересную опцию:
imagecreatefrom***() Может использовать в качестве параметра URL. (если в php.ini включена опция fopen wrappers) Значит мы можем:
После чего мы можем как угодно манипулировать изображением. |
|||
|
||||
PARROT |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2339 Регистрация: 5.1.2005 Где: Спб-ЦарьГрад Репутация: 2 Всего: 50 |
1) Значит не будет его аватара. 2) Проверять на размер аватара (как известно аватары на винград загружаеются не более чем 5кб помоему) 3) Потом есть загрузка не только с компа юзера, но и по предоставленной ссылке. -------------------- Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим! |
|||
|
||||
mishaSL |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 54 |
Очень плохая идея. Во-первых, эта опция на большенстве хостингов отключена. Во-вторых, посмотри эту информацию: http://vingrad.ru/PHP-PHPNETHTTP-003044 В третих, чем не устраивает, сначало сохранить, можно во временную директорию сохранить, а потом ресайзить и т.д. Еще раз пример кода с сохранением:
А дальше с сохнаненной картинкой делаешь все, что душе угодно. ![]() -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
||||
|
|||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
mishaSL, А если требуется проверить размер файла перед закачкой, если он слишком большой - чтобы даже не браться закачивать?
Нашел опцию CURLOPT_INFILESIZE прописал значение 10Kb (10240) - если передавать увесистую картинку - все равно пропускает. Как быть? |
|||
|
||||
Serkys |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
При отправке через POST файл не закачивается. Чтобы его закачать, надо после вызывать move_uploaded_file() или copy(). А размер файла хранится в $_FILES['filename']['size']. Проверить его элементарно:
|
||||
|
|||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
Serkys, Нет, мы не о том говорим. Или это я не о том думаю...
![]() |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
||||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 54 |
Serkys, Рыжий имел ввиду загрузку удаленного файла зная его url.
Рыжий, я вижу два варианта: 1. еще до загрузки получить заголовки и проверить там Content-Length если он больше нужного то не загружать файл. В данном подходе есть один минус заголовок Content-Length естьне всегда, к примеру его часто не бывает когда изображение генерируется скриптом. Но это мне кажется оптимальный вариант. 2. Воспользоваться функцией curl_getinfo() при указании константы CURLINFO_SIZE_DOWNLOAD мы получим кол-во закаченных байт. Соответственно мы можем получить эти данные только после выполнения закачки файла. -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
Рыжий |
|
|||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: нет Всего: 20 |
mishaSL, Буду использовать первый вариант, если его нет - после закачки можно использовать хоть filesize().
|
|||
|
||||
mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 2 Всего: 54 |
filesize() можно использовать уже после сохранение файла, а я предлогал во втором варианте проверять до сохранения, но после загрузки. Я думаю он оптимален ![]() -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
wolfmessing |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 24.4.2007 Репутация: нет Всего: 1 |
У меня такая трабла, '".$result['avatar']."' -- это путь до аватарки, но она категорически не хочет выводица на экран. В БД записался этот путь, показывает имя, ид, мессагу, и тему, а на аватаре пустое место ![]() Чо интересно, просто эхом выводица
|
||||
|
|||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Графика | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |