Загрузка файлов

Автор kak2z, 06 марта 2012, 10:40:33

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kak2z

Ну собственно делаю простенькую галерею. Из того что есть готового - ничего не подошло, да и хочется в принципе потренироваться на ПХП)
Уже третий день курю гугл - как вижу сделать загрузку файлов не сложно. Но главный камень преткновения это - сложно сделать безопасную загрузку файлов.
Вообще задача стоит такая:
1. Загрузить файл
2. Уменьшить размер если надо (было разрешение 3500х3000 - ужали до 1200х1000)
3. Преобразовали в jpg

Благодаря Буго нашел вот такое чудо http://www.plupload.com/example_all_runtimes.php (правда пока не понял как его прикрутить к моему скрипту))))
Но а вообще конечно хочется сделать на ПХП без флеша (на мобильных устройствах допустим флеш не на всех работает ) Как например это в СМФ сделано.
Может что то посоветуете? Может кто то - что то подобное реализовывал и есть примеры без уязвимостей?

В принципе самый главный вопрос это безопасность. 
Если файл большой то как мне кажется можно с помощью GD его уменьшить и вопрос безопасности сам по себе пропадет - если даже в jpg и было какое то включение левое то GD его просто не примет (как мне кажется) и загрузку можно будет отменить.
А если файл небольшой то его и пережимать то не надо грубо говоря - тогда можно загрузить все что угодно (судя по статья на хабре).
В общем нужно мнение: Не морочить голову и использовать готовые мультизагрузчики или все таки лучше постараться и что то правильное на пхп нарисовать)
Спасибо.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

1. За принудительное использование яс и флеша (там, где можно обойтись без них) - три года расстрела.

Вам будет не весело, когда пользователи начнут жаловаться, что не работает. И будет всем всё-равно, из-за кривого плагина, обновления библиотеки, блокировки адресов или из-за чего-либо ещё. Из свежих примеров на этом форуме - тема про быстрое редактирование. Два разных эпизода, но в обоих некорректная работа яс-обработчиков. Если бы этот функционал был основным, то редактирование сообщений стало бы невозможным до исправления ошибок (но исправили бы ошибки, конечно быстрее =) ). В данном случае разработчикам честь и хвала, что "быстрое" - это приятное дополнение.


2. Пользовательские данные фильтровать _всегда_
Вне зависимости от того, насколько доверенный пользователь. И даже чем больше прав, тем жёстче правила. Админ тоже человек, и ему тоже можно весёлых ссылок подсунуть.


В соответствии с этими пунктами и выбирайте решение. Если загружаются только изображения - выбирайте единый формат, и переворачивайте в него все.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Пытался гуглить не получилось - может неправильно запрос ставил. Вот какой вопрос возник - как сделать что бы пользователи не видели путь к изображению? (как это в СМФ сделано) И стоит ли так усложнять себе жизнь))?
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: kak2z от 07 марта 2012, 13:55:41
Пытался гуглить не получилось - может неправильно запрос ставил. Вот какой вопрос возник - как сделать что бы пользователи не видели путь к изображению? (как это в СМФ сделано) И стоит ли так усложнять себе жизнь))?
В СМФ только у вложений не отображаются реальные пути. Картинки же тем оформления имеют вполне реальный адрес. Также и аватарки, например, ваша http://www.simplemachines.ru/avatars_users/avatar_12213_1273434923.gif
У вас задача-то какая? Контроль загрузки? Проверка прав?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Проверка прав. У альбома я выставляю пароль (с паролями я еще толком не разобрался но этой инфы кучу нашел). И надо что бы только тот кто знает пароль мог по скопированной ссылке увидеть изображение.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: kak2z от 07 марта 2012, 15:47:56
Проверка прав. У альбома я выставляю пароль (с паролями я еще толком не разобрался но этой инфы кучу нашел). И надо что бы только тот кто знает пароль мог по скопированной ссылке увидеть изображение.

тогда, да

if( _есть_права_ )
{
    //выставить заголовки Content-Type со товарищи
    ...
    //отдать файл
    readfile(_путь_к_скрытому_файлу_ );
}

подробнее см. Display.php::Download(). И как завещал товарищ Микеланджело, отсекаете всё лишнее. Для картинок, например, нет нужды в конвертации кодировок и сжатии.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Спасибо)) Буду знать теперь направление))
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)