Дублирование фотографий при загрузке с л&#108 Дублирование фотографий при загрузке с л&#108
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Дублирование фотографий при загрузке с лl

Started by miks69, May 21, 2010, 12:22:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

miks69

Есть галерея, установленная на домашнем сервере, который доступен через Инет.
Есть огромный архив фотографий (примерно 25 Гб), расположенный на одном из дисков на том же сервере.
Начинаем создавать альбомы и загружать туда фотки и помимо превьюшек и фоток норм.размера получаем дубоирование фотографий в исходном размере в соответствующей папке галереи :) Вопрос: зачем?

Гораздо удобнее было бы иметь опцию, с помощью которой можно было бы указать, что источник фотки расположен на локальном ресурсе сервера (т.е. всегда доступен серверу). При этом достаточно будет создать маленькие файлы превью и фотки норм.размера (опционально), и сохранить в базе локальный путь к исходному файлу фотографии на локальном диске. При дальнейшем просмотре фотографий галереи пользователями при необходимости загрузки исходного файла фотографии автоматически искать его (файл) по сохраненному в базе пути.

Уважаемые профи и гуру CPG! Если подскажете где и что в коде можно поправить, чтобы получить такую логику работы, буду очень признателен и попробую сделать сам, хотя не слищком хорошо знаю PHP.
Если кто-либо из вас возьмется и сделает такую опцию во всеми любимом продукте, думаю она многим пригодится, а не только мне. Возможет также вариант договориться лично о разумном вознаграждении за потроченное время.

С надеждой на понимание жду ваших комментариев.

Alex Revo

В коде придется делать слишком много правок и вы потеряете возможность быстрого обновления версии галереи.

Есть другой путь - групповое добавление файлов.

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

miks69

Интересное предложение, надо попробовать.
Если прокатит, то в идале можно данную логику немного доработать, чтобы можно было делать групповое добавление не только из папки albums, а из любой выбираемой локальной папки сервера с сохранением пути к ней в настройках, как вариант.
По поводу быстрого обновления - не проблема, могу посидеть какое-то время на одной версии.
В следующей версии, конечно, придется снова руками править.

miks69

Попробовал на версии 1.4.26 (stable) - не работает. Создал свою папку в albums и положил туда фотки. Зашел в "групповое добавление файлов" - получаю сообщение:
QuoteВ папке "albums" отсутствуют созданные Вами папки.
Убедитесь, что Вы создали хотя бы одну свою папку внутри папки "albums" и загрузили в неё по FTP свои файлы.
Вы недолжны ничего загружать в папки "userpics" и "edit", они зарезервированы для http загрузок и внутренних нужд.

miks69

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

miks69

С другой стороны, даже если будет возможность указать другую папку, т.е. в моем случае папку с архивом всех альбомов фотографий, зачем ее засорять файлами с измененным размером картинки (превью и норм)?
Поэтому возвращаемся к исходной постановке задачи, т.е. опциональной возможности загружать фотки из другой (произвольной) локальной папки на сервере без копирования файла с исходным размером картинки.
Какие еще мысли?

smira

попробуй изменить директорию альбома в настройках Конфигурация>>>Настройки файлов>>>директория альбома

Alex Revo

Дальше нужно в код смотреть, но мне кажется что галерея в любом случае использует относительные пути. Т.е. максимум что удастся сделать, это выбирать файлы в пределах папок вебсервера.
Попробуйте поставить на компе coppermine helper и поиграться с ним, не знаю может он вам помочь или нет, сам не пользовался. Или ищите другие загрузчики для галереи.

miks69

Насколько я понимаю данная настройка указывает общую директорию, в которой система работает, т.е. при ее изменении все новые папки альбомов пользователей, малоразмерные копии файлов, и т.д. Это не очень интересно.
Кроме того там указывается путь к папке относительно корневой директории. Как в этом случае указать другой локальный диск?
Насчет других загрузчиков - спасибо, буду смотреть. А что это за coppermine helper?

Alex Revo

Гугл подскажет или поиск по форуму)

MISHA

Думаю это можно решить с помощью .htaccess или виртуальными хостами на веб сервере, или через Alt-F6 в FAR'е
Что бы Ктулху не воскрес, подпишись на RSS

miks69

Quote from: MISHA on May 23, 2010, 08:17:11 PM
Думаю это можно решить с помощью .htaccess или виртуальными хостами на веб сервере, или через Alt-F6 в FAR'е
А можно попросить Вашу мысль изложить немного поподробнее...

MISHA

Вроде как так, в общем нужно побольше почитать.

Перед всеми виртуальными хостами должен стоять код:


<VirtualHost *:80>
   ServerName default
</VirtualHost>


<VirtualHost *:80>
ServerAdmin mail@mail.ru
DocumentRoot I:\gallery
ServerName gallery
ServerAlias *.sait.ru
ErrorLog logs/sait.ru/sait.ru-error.log
TransferLog logs/sait.ru/sait.ru-access.log
</VirtualHost>

<VirtualHost *:80>
DocumentRoot I:\gallery\albums\
ServerAlias *.sait.ru/gallery/albums/test
</VirtualHost>
Что бы Ктулху не воскрес, подпишись на RSS

miks69

Может я, конечно, совсем чайник, но, извините, пока не понимаю, что это даст...

MISHA

Смысл в том чтобы галерея видела альбом тест у тебя в папке /gallery/albums/ а сама папка будет находится F:\gallery\albums\test

Поправка:
<VirtualHost *:80>
DocumentRoot F:\gallery\albums\test
ServerAlias *.sait.ru/gallery/albums/
</VirtualHost>


Лучше вам почитать это http://www.apache.ru/faq/ и это http://www.dmsdesign.ru/apache3.html
Что бы Ктулху не воскрес, подпишись на RSS

miks69

Пробовал подключать папку с архивом фотографий как виртуальную папку (например, /gallery/albums/test), не работает.
Т.е. галерея не воспринимает ее как папку внутри /albums и, как следствие, не выводит.

Makc666

Windows - зло в отношении виртуальных папок и т.п.

Проблема не в том, видит ли галерея папку или нет.
Проблема в том, видит ли WEB-сервер папку или нет.
Вам нужно сначала заставить WEB-сервер выдавать содержимое папки /gallery/albums/test/ в строке браузера, а уже потом работать с галереей.

Т.к. Windows - это не моя родная среда для WEB-приложений - я вам не помогу.

В UNIX подобное делается элементарно.

miks69

Да, именно этим я и занимаюсь, т.е. пытаюсь получить физический путь к папке по ее алиасу. К сожалению, PHP не умеет этого делать встроенными средствами. В то время как в ASP это делается на раз с помощью Server.MapPath(). Отсюда возникает задача: как при выполнении кода PHP использовать данную команду, например, на JScript, с передачей ей алиаса в качестве параметра и возвратом физического пути в качестве результата? Может подскажете, т.к. я не очень владею такими фишками в PHP.

Makc666