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

sleeprain

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

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

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

Затем реализовав это на стороне сервера займитесь соединением этого всего в
ajax интерфейс на стороне клиента. Поочередный вызов тех или иных методов на сайте
реализовать довольно просто.
 
Если хочется сделать превью "ДО" загрузки на сервер, то путь лежит к flash, иначе никак.
 
Bardak
не путай теплое и мягкое, вырезать все равно будет сторона сервера
 
PS: а всяких плагинов типа jCrop пруд пруди.
 
Bardak
не путай теплое и мягкое, вырезать все равно будет сторона сервера

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

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

Проблему превью этим не решить, но не думаю, что ТС хотел именно это.
 
PhotoGalleryItem (id, thumbnail_id, preview_id, original_id, [position])

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

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