Простой сервер изображения

У меня есть набор изображений, которые мне нужны другие для просмотра через веб-браузер в значительной степени тем же способом как Галерея Apache.

Я смог бы вывести все свои изображения в каталоге так, чтобы пользователи, совершающие нападки:

http://server:port/directory

видел бы маленькие миниатюры, и выбирание изображения загрузит его полный размер на странице с опциями просмотреть предыдущее или следующее изображение.

Я ищу не решение для Apache, во многом как замечательный Python простой http сервер, который может быть запущен где угодно с минимальной конфигурацией и суетой, например.

python -m SimpleHTTPServer 8000

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

Счастливый использовать приложение, записанное в любом общем языке, пока это сам содержавшее и может работать на Linux на пользовательском порте (и повторить, не модуль Apache).

ОБНОВЛЕНИЕ

Я просто нашел сценарий Python названным куратором, который прост работать. Это генерирует необходимые ползунки и статический HTML из любых изображений в каталоге, на который Вы указываете на него, после которого можно использовать SimpleHttpServer для продавания результатов.

12
задан Joel 17 March 2010 в 16:13
поделиться

2 ответа

Спасибо за ответы и комментарии. Решение, которое я в итоге использовал, соответствовало моему обновлению:

  1. Запустить куратора в каталоге, содержащем все мои изображения. Это генерирует превью и индексную страницу, а также разбивает на страницы все полноразмерные изображения.
  2. Запустите « * python -m SimpleHTTPServer 8000 * » в этом каталоге, чтобы просмотреть результирующий HTML-код, сгенерированный куратором.

Итак, это простой двухэтапный процесс, который в значительной степени удовлетворяет мои первоначальные требования.

5
ответ дан 2 December 2019 в 07:20
поделиться

Хотя он не использует класс SimpleHTTPServer, этот сценарий cgi-bin показывает, как очень просто отображать изображения. Расширьте его, чтобы он соответствовал вашим потребностям. Источник здесь.

from os import listdir
from random import choice

ext2conttype = {"jpg": "image/jpeg",
                "jpeg": "image/jpeg",
                "png": "image/png",
                "gif": "image/gif"}

def content_type(filename):
    return ext2conttype[filename[filename.rfind(".")+1:].lower()]

def isimage(filename):
    """true if the filename's extension is in the content-type lookup"""
    filename = filename.lower()
    return filename[filename.rfind(".")+1:] in ext2conttype

def random_file(dir):
    """returns the filename of a randomly chosen image in dir"""
    images = [f for f in listdir(dir) if isimage(f)]
    return choice(images)

if __name__ == "__main__":
    dir = "c:\\python\\random_img\\"
    r = random_file(dir)
    print "Content-type: %s\n" % (content_type(r))
    print file(dir+r, "rb").read()
3
ответ дан 2 December 2019 в 07:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: