1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/icret-easyImages

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Уже доступна новая версия 2.0, рекомендуется использовать её для дальнейшей работы. В ней исправлено множество ошибок.

https://github.com/icret/easyImages2.0

EasyImage — простая программа для хранения изображений

  • Электронная почта: lemonim(at)qq.com

Программа поддерживает множественную загрузку файлов, удалённую загрузку, загрузку через API, не требует базы данных, сразу возвращает URL изображения, поддерживает Markdown, BBCode и HTML.

Демонстрационный адрес: http://t.cn/ReBp80X

Ранее я использовал программу для хранения изображений PHP Multi-Picture Uploader версии 2.4.3. Она устарела, и в ней использовался Flash для загрузки. Сейчас, когда HTML5 стал популярным, я написал новую программу на основе HTML5, которая также поддерживает Flash и совместима с IE9.

Этот код вдохновлён программой PHP Multi Picture Uploader 2.4.3 и написан для практики на PHP.

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

Перед использованием программы обязательно измените domain в config.php на свой собственный!

  • Программа позволяет настраивать качество изображения.
  • Поддерживает водяные знаки (текст или изображение), можно настроить цвет текста и цвет фона.
  • Можно настроить прозрачность водяного знака.
  • Позволяет конвертировать загружаемые изображения в указанный формат.
  • Есть возможность задать ширину и высоту изображения.
  • Ограничивает минимальную ширину и высоту загружаемых изображений.
  • Поддержка статических файлов CDN и локального переключения.
  • Возможность включить или отключить просмотр недавно загруженных изображений.
  • Загрузка только после входа в систему.
  • Настройка рекламы.
  • Веб-статистика. Пожалуйста, поместите код статистики в /static/hm.js.
  • Удаление пользовательских изображений (только для администраторов).
  • Загрузка изображений на удалённый сервер (внешнее хранилище).
  • Включение или отключение загрузки через API (поддержка включения или отключения пользовательских водяных знаков через API).

Загрузка на удалённый сервер [кросс-доменная загрузка]

  1. Скопируйте все файлы из папки crossdomain и файл config.php в новый сервер.
  2. Присвойте папке crossdomain и всем файлам внутри неё права доступа 0777.
  3. Измените домен в файле config.php нового сервера на текущий домен (с завершающим '/').
  4. Включите кросс-доменную загрузку в новом сервере, установив для 'crossDomain' значение true.
  5. Измените 'CDomains' в файле config.php старого сервера на путь к файлу file.php нового сервера.

Пример загрузки на удалённый сервер:

У меня есть домен a.com, и я хочу загружать изображения случайным образом на b.com, c.com и другие домены.

Сначала скопируйте папку crossdomain и файл config.php со своего сервера a.com на серверы b.com и c.com.

Измените домен в скопированном файле config.php на соответствующий домен, например, b.com:

'domain'=>'http://b.com/t/file.php',
c.com аналогично:
'domain'=>'http://c.com/t/file.php',

Обратите внимание на необходимость указать полный путь.

Присвойте папке crossdomain и всем файлам внутри неё на серверах b.com и c.com права доступа 0777 (chmod -R 0777 /www/wwwroot/xxx/crossdomain).

Затем откройте файл config.php на сервере a.com и включите кросс-доменный доступ, установив 'crossDomain' в значение true, а также измените:

'CDomains'      => [
'http://a.com/t/file.php',
'http://b.com/t/file.php',
'http://c.com/t/file.php'
],

Обратите внимание на использование правильных разделителей и отсутствие ',' после последнего домена.

Теперь вы можете протестировать загрузку. Если есть изменения, просто внесите их в файл config.php на своём сервере и скопируйте на все остальные серверы.


Функция Загрузка изображения через API
HTTP-метод POST
URL https://img.545141.com/api.php
Параметр Тип Обязательный Описание
file File Да Имя формы
apiWaterText Hidden Нет Пользовательский водяной знак для загрузки
Название Тип Пример значения Описание
result String success Состояние загрузки файла. Успех обозначается как success, ошибка — как failed
message String https:\/\/img.545141.com\/images\/201808\/16faa5601aec0cd0.jpg Если загрузка прошла успешно, возвращается URL, в противном случае отображается описание ошибки

| Пример успешного ответа |

{"result":"success","url":"https:\/\/img.545141.com\/images\/201808\/16faa5601aec0cd0.jpg"}

| Примеры ошибок |

{"result":"failed","message":"API уже закрыт."}
{"result":"failed","message":"Пожалуйста, введите допустимые параметры."}

| Пример загрузки |

<form action="https://img.545141.com/api.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="hidden" name="apiWaterText" value="www.test.com">
    <input type="submit" value="Загрузить">
</form>

  • 2018-8-16 v1.6.3

    • Поддержка включения и выключения загрузки через API (включая поддержку включения и выключения пользовательских водяных знаков через API)
    • Исправление проблем с разрешениями
    • Исправление ошибок с загрузкой в подкаталоги
  • 2018-8-8 v1.5.3

    • Добавлена поддержка загрузки изображений на удалённые серверы
    • Исправлены логические ошибки
  • 2018-8-6 v1.4.3

    • Добавлен веб-счётчик
    • Добавлено удаление загруженных файлов
    • Обновлён файл config.php
  • 2018-8-5 v1.4.2

    • Добавлена загрузка после авторизации
    • Исправлена логическая ошибка
    • Устранена уязвимость
  • 2018-8-4 v1.3.2

    • Добавлены настройки рекламы
    • Улучшен механизм импорта
  • 2018-8-3 v1.2.2

    • [Важно] Устранены проблемы с добавлением водяных знаков к изображениям GIF
    • Устранены проблемы с отображением цвета фона водяного знака
    • Устранены ошибки с правами доступа в Linux
    • Некоторые оптимизации и улучшения
  • 2018-08-02 v1.1.2

    • [Важно] Исправлены проблемы с водяными знаками, которые делали статичные изображения GIF
    • Исправлены проблемы с отображением фона водяного знака
    • Исправлены ошибки с правами доступа в Linux
    • Несколько оптимизаций и улучшений
  • 2018-08-01 v1.0.1

    • Переименованы некоторые каталоги файлов
    • Оптимизация кода
  • 2018-07-30 v1.0.0

    • Первая версия

Совместимость

Загрузка файлов через веб-интерфейс не поддерживается в браузерах ниже IE9, API не имеет ограничений, 5.6 < PHP < 7.0+.

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


  • Спасибо verot за предоставление очень полезного класса upload.php для загрузки
  • Спасибо ZUI за предоставленный CSS-фреймворк
  • Спасибо CCTV за то, что позволили мне опубликовать код на GitHub

Исходный код соответствует GNU Public License.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
LGPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/icret-easyImages.git
git@api.gitlife.ru:oschina-mirror/icret-easyImages.git
oschina-mirror
icret-easyImages
icret-easyImages
master