2010-01-04 7 views
1

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

Я Отредактируйте файл .htaccess в этой директории, чтобы защитить эту папку от разрешения нежелательных посетителей, чтобы загрузить содержимое вручную, введя полный адрес Ex: http://www.bkabkabka.com/a/b/c/document.pdf

и это .htaccess данные

Options All -Indexes 
<FilesMatch "\.(htaccess|doc|pdf|docx)$"> 
Order Allow,Deny 
Deny from all 

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

id    name   filename 
1    aaaaa  --> filename1 <-- this is href link which contains for example http://www.bkabkabka.com/a/b/c/2.doc 

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

как я могу это сделать?

спасибо.

ответ

4

самый простой способ защитить паролем каталог с Апач Htpasswd:

добавить в ваш .htaccess в корневой директории защищаемого дерева каталогов:

AuthUserFile /home/user/www/protected/.htpasswd 
AuthType Basic 
AuthName "Protected" 
Require valid-user 

затем запустить это от COMAND линии и введите желаемый пароль:

htpasswd -c /home/user/www/protected/.htpasswd user 

вы можете добавить другой пользователь, как так:

htpasswd /home/user/www/protected/.htpasswd user2 

чтобы загрузить файлы в этом защищённом каталоге с помощью php, используйте базовую аутентификацию. то есть построить такой URL-адрес: http://user:[email protected]/protected/file.txt

Ваш комментарий, в cpanel есть функция «Защита паролем», доступная с главной страницы. Вот некоторые подробности о том, что:

http://www.siteground.com/tutorials/cpanel/pass_protected_directories.htm

если вы планируете хранить загруженные файлы в защищенном каталоге, вы просто хотите, чтобы убедиться, что move_uploaded_file копирует файл на правильный путь, например:

move_uploaded_file($tmpPath, "/home/user/www/protected/$name"); 
+0

В настоящее время я использую cpanel для управления пакетом хостинга forour компании, которую мы купили у ISP. поэтому я не знаю, могу ли я запускать команды из cpanel. еще одна вещь. Что касается части загрузки, я должен внести некоторые изменения в код. – bogha

+0

$ uploaddir = 'uploads'; // Где вы хотите загрузить файлы - Важно: убедитесь, что разрешения для этих папок - 0777! $ allowed_ext = 'doc, docx, pdf'; // Это разрешенные расширения файлов, которые загружаются $ max_size = '1000000'; // 50000 совпадает с 50kb $ tempFilename = $ _ FILES ['cv-file'] ['tmp_name']; $ Filename = $ _ FILES ['cv-file'] ['name']; $ Filesize = $ _ FILES ['cv-file'] ['size']; если (is_uploaded_file ($ tempFilename)) { если (move_uploaded_file ($ tempFilename, $ UploadDir. '/'. $ NewFilename)) {// нормально}} – bogha

+0

+1 для URL-адрес метода Идент! – o01

1

Фактически вы можете указать username/password combination directly in .htaccess, код PHP не требуется. Это даст вам базовую аутентификацию уровня HTTP, которая может быть достаточно хорошей для вас. Но будьте осторожны, он довольно слаб с точки зрения безопасности. Но он будет держать ленивых людей.

+0

Чем безопаснее? – bogha

Смежные вопросы