[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка картинок на хост с превью
razoramus
Делаю для себя сайт картинок, всё подготовлено(картинки, таблицы в бд и т.д.).
Дизайн готов, Форму загрузки сделал. осталась техническая часть - админка(загрузка картинки на сервер)

Форма

<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

Спустя 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_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 одинаковых хэша запросто может быть )

А если заведется злой хомяк и узнает про то как вы фотки формируете, он обязательно воспользуется фишкой, чтобы затирать фотки других юзеров.

Спустя 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++ написал(а):
Ну и зря smile.gif

Проект сейчас вырос, раньше более скудный функционал был. С тем же успехом можно вместо 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)
Ну и зря smile.gif

Проект сейчас вырос, раньше более скудный функционал был. С тем же успехом можно вместо jquery свои костыли ваять.

Скачал, посмотрел, файлов слишком много, трудно разобраться.

Спустя 3 минуты, 37 секунд (3.04.2012 - 22:50) I++ написал(а):
Цитата (razoramus @ 3.04.2012 - 23:46)
Цитата (I @ ++3.04.2012 - 19:41)
Ну и зря smile.gif

Проект сейчас вырос, раньше более скудный функционал был. С тем же успехом можно вместо jquery свои костыли ваять.

Скачал, посмотрел, файлов слишком много, трудно разобраться.

Там всего навсего нужен исходник на 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 ковырять, чтобы узнать как работает функция и нафига она нужна laugh.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.