Превью файла перед его загрузкой на сервер

sleeprain

Новичок
Есть интернет-магазин, нужно реализовать в админке загрузку нескольких изображений к товару, так же нужно выбрать какое изображение будет лицевым (обложкой для товара).
Моя реализация добавления товара в интернет-магазин(последний пункт до сих пор не могу разобраться нужна помощь)
1. Отображается форма с добавлением основной информации (наименование товара, цена, характеристики и т. д.)
2. Запись данных - вся информация заносится в сессии.
3. Отображается форма загрузки фото к товару (загрузка через ajaxuploader)
4. Тут возникает проблема:
Загружаю первое фото, javascript отправляет данные контроллеру, контроллер обрабатывает фотографию(делает три эскиза big middle и small) и загружает в папку с фото.
Идёт сразу отображение загруженных изображений, со ссылкой на удаление(хотя тут тоже пробемма id или class у изображений одинаковые и их не удалить так просто) и у каждого изображения есть кнопка radio для определения основного изображения к товару(опять же не понятно с id и class).
Задача:
Загрузить несколько картинок на сервер, определить основную и записать в mysql.
Помогите, понимаю, что всё выше изложенное может трудно понять, но я объясню если кто ответит на эту тему.
 

KorP

Новичок
Превью файла перед его загрузкой на сервер
Загрузить несколько картинок на сервер
так перед загрузкой или нет?

А в чём проблема присвоить картинками уникальные имена и ориентироваться по ним?
Если картинки уже всё-равно на сервере - в чём проблема их в базу запихнуть, а после выбора радиобутона добавить выбранную картинку к основной инфе что у тебя в сессии и положить в базу?
 

SiZE

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

Bardak

Новичок
Мне кажется надо начать с реализации каждой из задач на стороне сервера:
1. Добавление товара в базу данных
2. Загрузка изображения/изготовление превьюшек/добавление записи об изображении в базу данных
3. Установка статуса "изображение по умолчанию" (изменение значения столбца в базе данных)
4. Удаление изображения.
и т.д.

Все эти задачи выполняются на стороне сервера и могут выполняться в разное время. Т..е пользователь
может добавить товар, а изображения добавить уже позже через форму редактирования и т.д.

Затем реализовав это на стороне сервера займитесь соединением этого всего в
ajax интерфейс на стороне клиента. Поочередный вызов тех или иных методов на сайте
реализовать довольно просто.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Если хочется сделать превью "ДО" загрузки на сервер, то путь лежит к flash, иначе никак.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Bardak
не путай теплое и мягкое, вырезать все равно будет сторона сервера
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
PS: а всяких плагинов типа jCrop пруд пруди.
 

Bardak

Новичок
Bardak
не путай теплое и мягкое, вырезать все равно будет сторона сервера
ну это понятно. Просто мне кажется пользователю все равно где именно вырезается, хоть на сервере хоть на клиенте, разницу он не почувствует.
 

rotoZOOM

ACM maniac
Как сделано у меня.

Для каждого товара создается объект PhotoGallery на этапе создания товара (то есть на этапе добавления фото он уже есть в БД).
Далее, при загрузке каждого фото создается объект PhotoGalleryItem (id, thumbnail_id, preview_id, original_id, [position]), который связан с конкретной PhotoGallery и на своем борту несет ссылки на три фото (thumbnail, preview, original) и, возможно, позицию внутри галереи, каждая ссылка на фото - это ссылка на объект типа Picture. Каждый вышеперечисленный объект имеет свой уникальный id, что исключает проблему:
хотя тут тоже пробемма id или class у изображений одинаковые и их не удалить так просто
Каждый товар (Goods) имеет ссылку на PhotoGallery и на PhotoGalleryItem, который является обложкой.
Выбор главной картинки можно задавать точно так же, как остальные свойства товара, так как это и есть свойство товара.

Проблему превью этим не решить, но не думаю, что ТС хотел именно это.
 

Bardak

Новичок
PhotoGalleryItem (id, thumbnail_id, preview_id, original_id, [position])
А я обычно делаю что у меня имена файлов с изображениями содержат id (т.е. например, id.jpg) а превью и т.д. просто лежат в отдельных папочках и имеют такое же имя. ( id.jpg и thumbs/id.jpg medium/id.jpg)

Или имеет смысл хранить для всех изображений имя, если хочется, например, иметь название файла в виде транслитного названия товара для SEO?
 
Сверху