2010-01-04 8 views
1

사용자가 일부 파일을 폴더에 업로드 할 수있는 양식이 있습니다.웹 디렉토리에서 파일을 다운로드합니다.

내가 전체 URL을 전을 입력하여 수동으로 콘텐츠를 다운로드 할 원치 않는 방문자 수에서이 폴더를 보호하기 위해 그 디렉토리에 편집 htaccess로 파일을했습니다 : 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에게 코드를 사용하여 다음이 폴더에 대한 사용자 이름과 암호처럼 만들고 싶어 파일은 정상적으로.

어떻게 할 수 있습니까?

감사합니다.

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

는 다음 COMAND 라인에서 이것을 실행

보호 된 디렉토리 트리의 루트 디렉토리에있는 당신의 .htaccess에 추가 : 아파치와 디렉토리를 암호로 보호에

답변

4

가장 쉬운 방법은 htpasswd가이 당신과 같이 다른 사용자를 추가 할 수 있습니다

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

:

원하는 암호를 입력
htpasswd /home/user/www/protected/.htpasswd user2 

PHP로 보호 된 dir에서 파일을 다운로드하려면 기본 인증을 사용하십시오. 그것은 이렇게 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

현재 저는 ISP에서 구입 한 호스팅 패키지를 제어하기 위해 cpanel을 사용하고 있습니다. 그래서 나는 cpanel에서 명령을 실행할 수 있을지 모르겠습니다. 다른 점 .. 업로드 부분은 어떨까요? 코드를 약간 변경해야합니다. – bogha

+0

$ uploaddir = '업로드'; // 파일을 업로드 할 위치 - 중요 :이 폴더 권한이 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']; { if (move_uploaded_file ($ tempFilename, $ uploaddir. '/'. $ newFilename)) {// ok}} – bogha

+0

+1 URL 인증 기술의 경우! – o01

1

실제로는 username/password combination directly in .htaccess을 지정할 수 있으며 PHP 코드는 필요하지 않습니다. 이렇게하면 기본적인 HTTP 수준의 인증을 얻을 수 있습니다. 그러나 보안 측면에서 보면 약하다. 그러나 그것은 게으른 사람들을 내쫓을 것입니다.

+0

더 안전한 방법은 무엇입니까? – bogha

관련 문제