2011-07-01 4 views
1

나는 Joomla! 사이트마다 각 사용자마다 이미지가 있습니다. 내가 원하는 것은 이미지를 사용자에게 비공개로 유지하면서 일시적으로 (잘, 사본) 공개하는 것입니다.일시적으로 서버 파일 공개

제 생각에는 사용자가 "publish.php"스크립트를 호출하는 링크를 클릭하게하는 것이 었습니다. 이 스크립트는 사용자 이름을 사용하여 임시 (30 초) 폴더를 만들고 개인 폴더의 이미지를 해당 임시 폴더에 복사합니다.

스크립트는 임의의 키를 생성하고 사용자 이름과 키, 즉 www.site.com/photos/get_photo.php?key= 이름를 사용하여 URL을 구축 할 것입니다. 그런 사람 * 키 *

(QR 스캐너를 통해) 해당 링크로 이동하면 "get_photo.php"스크립트가 키가 유효한지 확인하고 이미지를 표시했는지 확인합니다.

나는 그것을 볼 수있는 URL 누구를 부여하지만, 사람이 폴링 내 서버로 사진을 드래그 할 때 사용할 수있게 유지할 수 있다는 점에서 공개하지 의미에서 사진을 공개합니다. 그들은 스크립트에 액세스 할 수없는 개인 경우

나는 원래 사진의 보안이 붙어 있지만, 공공 경우, 경우에 그들이 일시적으로 공공 만들기의 목적을 패배.

다음 문제는 한 스크립트에서 다른 스크립트로 확인할 수있는 키를 생성하고 있습니다.

모든 안내에 많은 시간을드립니다. 파일을 복사하는 오버 헤드를 통과하기 위하여려고하는 경우에

답변

0

, 당신은뿐만 아니라 PHP를 읽어 스크립트 및 출력 파일 자체가있을 수 있습니다. 나는 당신이 당신의 이미지를 어떻게 추적하고 있는지 확신하지 못한다. 그러나 데이터베이스에 공개되어있는 시간 표시를위한 컬럼을 추가 할 수 있다면. 그런 다음 스크립트에서 타임 스탬프를 확인하여 지난 30 초 이내에 공개되었는지 확인하십시오. 그럴 경우, 이미지에 file_get_contents를하고, 적절한 이미지 헤더를 설정하고, 기본 오류 이미지를로드하지 않았다면 출력하십시오.

+0

감사합니다. 사진을 디렉토리에 파일로 저장하고 있습니다 (데이터베이스에 이미지를 저장하는 것은 나쁜 습관 이었습니까?). 여기서 파일 이름은 사용자 이름 매개 변수로 전달되는 사용자 이름입니다. 이 방법으로 이미지는 스크립트로만 액세스 할 수 있으며 결코 공개되지 않습니다. – Dre

+0

데이터베이스에 이미지를 저장하는 것에 대한 논쟁이 있습니다. 개인적으로 나는 그것을하고 싶지 않습니다. 이미지가 웹 루트 외부의 디렉토리에 저장되어 있으면 해당 이미지의 유일한 게이트웨이가 스크립트가 될 수 있습니다. 그 스크립트에 대한 액세스는 공개 또는 비공개입니다. 스크립트 작성 방법에 따라 다르며, 스크립트에서 사용자 세션을 확인하기 위해 인증을 넣거나 내가 대답 한대로 데이터베이스의 타임 스탬프를 확인하여 이미지를로드하십시오. – copacetic