Имя пользователя + пароль для доступа к изображениям, PHP - PullRequest
2 голосов
/ 01 марта 2011

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

Решение выглядит примерно так:

  1. Камера безопасности загружает фотографии в "/ home / myserver / [username]"
  2. Пользователь заходит на www.example.com, где спрашивает имя пользователя и пароль.
  3. Аутентифицированный пользователь имеет доступ к фотографиям с камеры безопасности.

У меня есть некоторые идеи, но я прошу типичные решения. Решение должно быть в PHP.

EDIT: Хорошие ответы. Я предпочитаю решение, которое содержит простое управление пользователями. Это должно быть что-то для нетехнического человека. Так что я могу добавлять пользователей, используя учетную запись администратора. Это был смысл использования PHP.

Ответы [ 4 ]

2 голосов
/ 01 марта 2011

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

http://httpd.apache.org/docs/current/mod/mod_auth_basic.html

Вы должны использовать это в директиве Directory, чтобы сделать конкретный каталог доступным для просмотра:

Options +Indexes
0 голосов
/ 01 марта 2011

Почему бы не использовать htaccess для этого в сочетании с интерфейсом администратора на основе PHP / web, например PHPAccess

0 голосов
/ 01 марта 2011

Другой простой и высокопроизводительный вариант - использовать X-SendFile заголовки (см. этот модуль для apache), функциональность встроена в Lighty.

Используйте простой скрипт PHP, чтобы вывести список файлов в недоступном для Интернета каталоге. Чтобы начать загрузку, просто установите в заголовке X-SendFile путь к файлу, а Apache обработает все остальное.

1009 * Е.Г. *

if($loggedin && file_exists($filepath)) {
    header("X-SendFile: $filepath");
    exit;
}
0 голосов
/ 01 марта 2011

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

См. fpassthru для способа потоковой передачи контента.

...