2014-12-10 1 views
1

이 프로젝트에서 공용 폴더 외부에있는 폴더로 admin 제출 파일을 업로드합니다.공용 폴더 외부에있는 이미지를 반향하는 방법

/web/ (the public folder) 
/upload/ (uploading image to this which is at the same level as the public folder) 

지금 allthough 나는 절대 URL (/www/userid/upload/)를 사용하여 uplaod 수 있어요, 나는 상대 또는 절대 중 URL을 사용하여 동일한 이미지를 에코 드릴 수 없습니다.

나는 <img src="/www/userid/upload/photo.jpg" /><img src="../upload/photo.jpg" />을 시도했지만 아무도 작동하지 않습니다. 어떤 힌트?

+1

[php 링크가 기본 웹 디렉토리 외부의 이미지 파일] 가능한 복제본 (http://stackoverflow.com/questions/258365/php-link-to-image-file-outside-default-web-directory) ** 또는 ** http://stackoverflow.com/questions/19979537/how-can-i-show-the-images-outside-the-web-root-directory-in-my-php-application ** 또는 ** http : //stackoverflow.com/questions/11270931/displaying-images-from-outside-the-site-root ** 또는 ** http://stackoverflow.com/questions/17750639/how-to-view-an-image -outside-of-web-root – j08691

+0

공용 폴더 외부에 웹 참조를 사용할 수 없으므로 웹 서버에 가상 디렉터리로 "업로드"를 포함시켜야합니다. – cardeol

답변

3

direct 경로를 사용하는 것입니다 당신이 할 수 없기 때문에 루트 폴더의 외부에서 콘텐츠를 얻을. 당신은 다른 방법으로 할 수있는, 서버 디렉토리 경로에서 PHP 스크립트에서 이미지 파일을 읽고 fi를 제공 르 나는 PHP와 폴더 옵션을 생략하고 서버에 직접 심볼릭 링크를 사용하는 것이 스크립트 header

file.php

<?php 
    $mime_type = mime_content_type("/image_path/{$_GET['file']}"); 
    header('Content-Type: '.$mime_type); 

    readfile("/image_path/{$_GET['file']}"); 
?> 


<img src="file.php?file=photo.jpg" /> 
+0

고맙습니다. jpg, jpeg, png, x-png, gif 등과 같은 여러 이미지 유형을 원할 경우 어떻게 할 것인가? – Jeremy

+0

MIME 형식의 파일 가져 오기 및 헤더 전달, 업데이트 된 코드 참조 – Girish

+0

완벽하게 작동합니다. 감사합니다. Girish. – Jeremy

1

일반적으로 웹 루트 외부의 디렉토리는 액세스하지 않습니다.

빠른 해결책은 virtualhosts

내부

alias /upload/ /www/userid/upload/ 

처럼 아파치 설정에 alias을 추가하고 작동하지 않습니다

/upload/photo.jpg 
0

를 사용하여. 나는 당신이 당신의 서버로서 리눅스의 어떤 형태를 사용하고 있다고 가정한다. 따라서 보안 문제가 아니라면 업로드 폴더에 이미지가있는 공용 폴더의 복사본을 만드십시오. 그러나이 폴더의 모든 항목이 업로드 폴더에 나타나지만 그렇게해서는 안됩니다. 대체 폴더는 업로드 폴더의 권한을 변경하고 그 모든 것을 스크립트로 작성하는 것이므로 많은 문제가 있습니다.