2014-07-27 1 views
0

저는 프로그래밍 및 학습을 통해 PHP를 처음 사용하는 사람들입니다. 나는 xamp를 설치했고 약간의 코드를 작성했다. 내 외부 hd에 일부 이미지가 있고 일부 사진을 보여주고 싶습니다.외부 hd php에서 이미지를 표시 할 수 없습니다

echo "<html><body>"; 
    $outerDir = "x:\map\maps\more\\"; 
    $total = count (array_diff (scandir ($outerDir), Array (".", ".."))); 
    $dirs = array_diff(scandir($outerDir), Array(".", "..")); 
    foreach ($dirs as $d) { 
     if (!is_dir($outerDir . $d)) { 
      echo $d . "<br>"; 
     } 
    } 

을하지만 이미지로 표시 할 경우, 내가 이미지를 표시 할 수 없습니다 : 문제는이 코드와 내 이미지의 경로의 목록을 얻을 수 있습니다. 나는 foreach에서 이것을 시도했다 :

if (!is_dir($outerDir . $d)) { 
    $file = $outerhDir . $d; 
    echo 'img src="' . $outerDir . $d . '> <br>'; 
    echo "<img src='" . $outerDir . '\\' . $d . "'alt='" . $d . "'> <br>"; 
} 

그러나 그 중 아무 것도 작동하지 않는다. 나는 또한 다음과 같이 헤더와 file_get_content를 시도했다.

if (!is_dir($outerDir . $d)) { 
    $file = $outerDir . $d; 
    header('Content-type: image/jpeg'); 
    header('Content-Length:' . filesize($file)); 
    $image = file_get_contents('$file'); 
    echo $image . "<br>"; 
} 

심지어 간단한 html 코드도 작동하지 않는다! 좋아요 :

echo '<img src="x:\map\maps\more\needwonder.jpg"> <br>'; 

BUTTTT !! 내 PHP 파일과 같은 폴더에 이미지 중 하나를 저장할 때 작동 할 것입니다! 이처럼 :

echo '<img src="needwonder.jpg"> <br>'; 

하지만 때문에 보안의, PHP 파일과 같은 폴더에 내 모든 파일을 넣어 싶지 않다가, 기술적으로도 편안한 이유와 내가 함께 문제 또는 문제를 피하기 위해하지 프로그래밍을 배우고 싶은 내 암호.

그래서 난 내 문제는 잘 정의 된 희망과 이미지 파일을 액세스 할 수하기 위해 설정된 폴더에없는 경우들 및/또는 여자 해결책을 알고 당신이 중 하나가

답변

0

나를 도울 수 있기를 바랍니다 웹 서버에서는 웹 페이지에 표시 할 수 없습니다. 그처럼 간단합니다. 그들을 사용할 수있는 웹 디렉토리에 넣어.

file_get_contents()과 같은 종류의 이미지 파일을 프록시하는 PHP 스크립트를 작성할 수는 있지만 이미지를 작성하려면 PHP 파일이 별도로 필요합니다. 꼭 필요한 경우가 아니면 피하는 것이 가장 좋습니다. 그것은 쉽게 보안 취약성을 도입 할 수 있으며 제대로 수행되지 못합니다. 당신은하지만, 그렇게 할 경우 : 이미지 대신에 PHP 스크립트

  • 링크를 매개 변수로 그것을 이미지에 대한 식별자를 전달 (예를 들어, <img src="img.php?image=blah">).
  • 해당 스크립트에서 해당 식별자를 사용하여 적절한 Content-Type을 보낸 다음 readfile()을 사용하여 이미지를 출력하십시오. (echo file_get_contents(...)과 동일하지만 일부 상황에서는 더 간결하고 더 잘 수행됩니다.)
  • 해당 스크립트에 대한 매개 변수를 조작하여 사용자가 사용하지 않으려했던 파일을로드 할 수 없다고 절대적으로 확신하십시오. 여기에는 ?image=../../wrong/file과 같은 속임수가 포함됩니다.
+0

답장을 보내 주셔서 감사합니다. PHP 대신 다른 언어를 사용하는 것이 더 좋습니까? 그렇다면 어느 것이 더 낫습니까? Java, C#, C++? PHP의 기본 사항을 마스터 할 때 다른 언어도 배우고 싶습니다. –

+0

이것은 언어 관련 문제가 아닙니다. 다른 언어로 전환해도 문제가 해결되지 않습니다. – duskwuff

관련 문제