Дизайн готов, Форму загрузки сделал. осталась техническая часть - админка(загрузка картинки на сервер)
Форма
<form action="./upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="pic">
<input type="text" name="text">
<input type="submit" value="Загрузить">
</form>
План такой:
1) Загрузить оригинал картинки в папку big
2) Отресайзит пропорциолнально до ширины 250px и положить в папку preview
3) Пути к обоим файлам записать в бд в таблицу pic(поля big и preview) и в эту же таблицу сохранить текст из поля text
Вроди пока всё.
Надо продумать под каким названием сохранять картинки на хосте. Формат загружаемых изображений будет только JPG/JPEG и не больше 1мб. Надо как то проверки на это сделать и не растягивать скрипт до километра, а то тут погуглил и у всех большой скрипт и совсем не то что нужно, не нашёл где говорилось бы о сохнанении пути в бд и ресайза превью. Мне б небольшой простой скиптик накалякать с ваше помощью.
С чего начать? Что далее сделать? Куда примерно глядеть?...
Чую тема будет не маленькая .)
Спустя 26 минут, 22 секунды (3.04.2012 - 08:20) nugle написал(а):
razoramus
1) Картинки сохранять под именем time().'_noresize' и time().'_resize'
2) Скрипт есть на форуме, воспользуйся поиском, насколько помню, скрипт от twin'a
1) Картинки сохранять под именем time().'_noresize' и time().'_resize'
2) Скрипт есть на форуме, воспользуйся поиском, насколько помню, скрипт от twin'a
Спустя 14 минут, 39 секунд (3.04.2012 - 08:35) razoramus написал(а):
Цитата (razoramus @ 3.04.2012 - 04:54) |
1) Картинки сохранять под именем time().'_noresize' и time().'_resize' |
А как то бы сделать чтобы допустим оригинал и превью лежали в одной папке pic и имели такие названия -> оригинал - 1_a, а превью 1_b, что то на подобии префикса и сама картинка числовая, может так лучше будет? вроди и ориентироваться проще, как думаешь? Я вот незнаю, картинок много. Чтобы сам потом не запутался
Цитата (razoramus @ 3.04.2012 - 04:54) |
2) Скрипт есть на форуме, воспользуйся поиском, насколько помню, скрипт от twin'a |
Я видел, он большой и не совсем понятный( Мне б кто объяснил
Спустя 26 минут, 29 секунд (3.04.2012 - 09:01) nugle написал(а):
razoramus
1)
1)
Цитата |
оригинал - 1_a, а превью 1_b, что то на подобии префикса и сама картинка числовая, может так лучше будет? |
Префикс я уже показал, можно сделать любой(тот же noresize - оригинал? resize - превью) "сама картинка числовая", почему я указал ф-ию time()? потому что у тебя никогда не будет совпадения картинок, а тут может одна другую перезаписать.
2) http://irbis-team.com/15/13/2 начни отсюда, я не буду объяснять тот большой скрипт, во-первых, потому что я сам его видел один раз мельком и не брал его во внимание, поскольку пользуюсь первым, на который дал ссылку. Во-вторых, просто так время не буду тратить на разжевывание большого кода. Будут какие-то вопросы задавай, а весь код нету ж, увольте
Я, например, на своем сайте не использую resize для картинок, а делаю так: css width - 250px height - auto, но такой метод немного не уважителен к моим посетителям, так как я их заставляю качать лишнее количество kb
Спустя 14 минут, 56 секунд (3.04.2012 - 09:16) Nikitian написал(а):
Цитата (nugle @ 3.04.2012 - 09:01) |
Я, например, на своем сайте не использую resize для картинок, а делаю так: css width - 250px height - auto, но такой метод немного не уважителен к моим посетителям, так как я их заставляю качать лишнее количество kb |
И ресайз такой получается лесенкой.
Как делаю я. Загружаю оригинал картинки, генерирую ей имя md5_file()+префикс исходника. Сохраняю картинку в папку uploads/{первые 3 символа имени}/{следующие 3 символа имени}/{сгенерированное имя}
В аплоадсе есть htaccess, который в случае отсутствия запрошенного изображения перенаправляет запрос скрипту. Скрипт принимает адрес запрошенного изхображения, где помимо имени может быть информация для ресайза (например /uploads/bc0/149/bc0149ad44cd6131f4f9b75e2dfafefc_204_145_thumbnail.jpg - требуется картинка bc0149ad44cd6131f4f9b75e2dfafefc.jpg размерами 204x145 отресайзенная по методу thumbnail, т.е. в нужные размеры вписать картнку с обрезкой большей части), ресайзю картинку, сохраняю её с запрошенным именем и вывожу в поток. Все следующие запросы этой картинки будут отрабатываться уже без апача и ресайза. Для защиты от нехороших людей, составляется список возможных размеров картинок.
Использование вложенных папок позволяет не пугаться заходить в эти папки по ftp после некоторого времени активной работы сайта.
Спустя 13 минут, 52 секунды (3.04.2012 - 09:30) I++ написал(а):
Могу предложить более простой путь: http://swfupload.org/
Демо: http://demo.swfupload.org/v250beta3/resizedemo/index.php
Насчет ID, существуют готовые функции:
echo uniqid('photo_');
P.S md5_file это круто.
Да кстати rand устаревший, и перед этим нужно инициализировать его, пользуйтесь mt_rand.
P.S.S если включить паранойю может так выйти, что фотки затрутся, 2 одинаковых хэша запросто может быть )
А если заведется злой хомяк и узнает про то как вы фотки формируете, он обязательно воспользуется фишкой, чтобы затирать фотки других юзеров.
Демо: http://demo.swfupload.org/v250beta3/resizedemo/index.php
Насчет ID, существуют готовые функции:
echo uniqid('photo_');
P.S md5_file это круто.
Да кстати rand устаревший, и перед этим нужно инициализировать его, пользуйтесь mt_rand.
P.S.S если включить паранойю может так выйти, что фотки затрутся, 2 одинаковых хэша запросто может быть )
А если заведется злой хомяк и узнает про то как вы фотки формируете, он обязательно воспользуется фишкой, чтобы затирать фотки других юзеров.
Спустя 2 часа, 39 минут, 2 секунды (3.04.2012 - 12:09) Bodich написал(а):
Цитата (Nikitian @ 3.04.2012 - 06:16) |
В аплоадсе есть htaccess, который в случае отсутствия запрошенного изображения перенаправляет запрос скрипту. |
что в нем прописать нужно , для перенаправления при отсутствии...?
Спустя 39 минут, 40 секунд (3.04.2012 - 12:49) Nikitian написал(а):
Ничего этакого. Такая конструкция используется на большинстве движков с одной точной входа. Ну тут эта точка для картинок переопределяется.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /imageresize.php?q=$1
</IfModule>
Спустя 8 часов, 41 минута, 8 секунд (3.04.2012 - 21:30) razoramus написал(а):
Цитата (razoramus @ 3.04.2012 - 05:35) |
Будут какие-то вопросы задавай, а весь код нету ж, увольте |
Да нет конечно же, я и не прошу целый код, мне ж самому немного охото покапаться в коде а не просто интегрировать чёжой) За инфу спасибо почитаю.
Цитата (razoramus @ 3.04.2012 - 05:35) |
Я, например, на своем сайте не использую resize для картинок, а делаю так: css width - 250px height - auto, но такой метод немного не уважителен к моим посетителям, так как я их заставляю качать лишнее количество kb |
Я тоже по началу так думал, но в скоре именно из за долгой прогрузки страницы отказался.
Спустя 1 минута, 42 секунды (3.04.2012 - 21:32) razoramus написал(а):
Цитата (Nikitian @ 3.04.2012 - 06:16) |
Могу предложить более простой путь: http://swfupload.org/ |
Натыкасля на него в поиске, не решил использовать
Спустя 1 час, 9 минут, 1 секунда (3.04.2012 - 22:41) I++ написал(а):
Ну и зря
Проект сейчас вырос, раньше более скудный функционал был. С тем же успехом можно вместо jquery свои костыли ваять.
Проект сейчас вырос, раньше более скудный функционал был. С тем же успехом можно вместо jquery свои костыли ваять.
Спустя 2 минуты, 49 секунд (3.04.2012 - 22:44) razoramus написал(а):
Цитата (razoramus @ 3.04.2012 - 05:35) |
на инбисе - Цитата: Попозже мы рассмотрим, как работать с картинками(ресайз, водный знак и так далее). |
Блин не вижу где про ресайз рассказывается и про всё остальное..
Спустя 2 минуты, 39 секунд (3.04.2012 - 22:46) razoramus написал(а):
Цитата (I++ @ 3.04.2012 - 19:41) |
Ну и зря Проект сейчас вырос, раньше более скудный функционал был. С тем же успехом можно вместо jquery свои костыли ваять. |
Скачал, посмотрел, файлов слишком много, трудно разобраться.
Спустя 3 минуты, 37 секунд (3.04.2012 - 22:50) I++ написал(а):
Цитата (razoramus @ 3.04.2012 - 23:46) | ||
Скачал, посмотрел, файлов слишком много, трудно разобраться. |
Там всего навсего нужен исходник на php который картинки принимает и обрабатывает, так же конфиг там же, а так же собранный из исходников флеш + js скрипты. В страницу встраиваешь и конфигурируешь как тебе надо на стороне сервера и на стороне клиента.
Спустя 19 минут, 10 секунд (3.04.2012 - 23:09) razoramus написал(а):
I++ Тяжело для меня, да и лишний код мне не к чему, картинки буду добавлять только я, через админку.
На ирбисе почитал, завтра пошуршу с кодом, сделаю просто загрузку оригинала на серв, потом надо про ресайз где-то читать и про сохранение в бд.
На ирбисе почитал, завтра пошуршу с кодом, сделаю просто загрузку оригинала на серв, потом надо про ресайз где-то читать и про сохранение в бд.
Спустя 3 минуты, 33 секунды (3.04.2012 - 23:13) I++ написал(а):
Зря, удобная хренотень, изучил бы не поленился, там удалять картинку можно 1 кликом )
Спустя 5 минут, 12 секунд (3.04.2012 - 23:18) razoramus написал(а):
Цитата (I++ @ 3.04.2012 - 20:13) |
Зря, удобная хренотень, изучил бы не поленился, там удалять картинку можно 1 кликом ) |
Блин блинский, я бы с удовольствием, кто бы помог разобраться.
Спустя 5 минут, 57 секунд (3.04.2012 - 23:24) I++ написал(а):
Там документация есть в архиве и примеры и все очень подробно расписано. Это тебе не исходные коды PHP ковырять, чтобы узнать как работает функция и нафига она нужна