2012-03-26 2 views
0

에 대한 imagejpeg()을 수행 할 수 없습니다나는이 코드를 가지고 있고이 일해야 할 여러 이미지

  if ($handle = opendir("images/")) { $i=0; 
        while (false !== ($file = readdir($handle))){ 
        if ($file != "." && $file != ".." && $file != "Recursive Dir_Renfiles_dirname-filename.php") { 
         $filename[$i]=$file; 
         $i++; 
        }}} 
        //print_r($filename); 

foreach($filename as $filename){ 
    $percent = 0.5; 

    // Content type 
    header('Content-Type: image/jpeg'); 

    // Get new dimensions 
    list($width, $height) = getimagesize($filename); 
    $new_width = $width * $percent; 
    $new_height = $height * $percent; 

    // Resample  
    $image_p = imagecreatetruecolor($new_width, $new_height); 
    $image = imagecreatefromjpeg($filename); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

    // Output 
    imagejpeg($image_p, null, 100);  
} 

을 I가이 일을 할 수있는 방법? 아니면 다른 방법이 있습니까? 당신이 한 페이지에 여러 이미지를 원하는 경우

+2

적어도 문제가 무엇인지 설명해보십시오. ('이 코드 덩어리는 효과가 없습니다'는 설명이 아닙니다.) – GolezTrol

+0

'imagejpeg()'는 이미지를 출력합니다. 다중 출력을 생성 할 수 없습니다. 정확히 무엇을하려는 거니? 이 이미지들을 함께 섞으려고하십니까? – Tchoupi

+0

예 - 우리의 질문은 - 정확하게 작동하지 않는 것은 무엇입니까? 우리가 알다시피, 당신은이 파일들을 쓸 수있는 권한이 없을 수도 있습니다 - 이것은 코드를 보면 알 수없는 것입니다. – Webnet

답변

2

, 당신은 하나 개의 이미지를 생산하는이 PHP 파일을 사용해야하고, 다음과 같이 HTML 이미지 태그의 소스로 PHP 파일을 사용

<img src="picture.php?img_id=1" /> 
<img src="picture.php?img_id=2" /> 


참고 :

$_GET를 통해 파일 이름을 얻고, 특히 슬래시, 예상치 못한 문자를 조심하는 것이 좋습니다 것입니다. 누군가는 다음과 같이 URL을 호출 할 수 있습니다 : picture.php?filename=../badImage.jpg, 액세스 권한이있는 다른 폴더에 파일을 표시 할 수 있습니다. 아마도 $_GET["filename"] = stripslashes($_GET["filename"]); 같은 것을 할 것입니다.

+0

ok. 그래서이 대신에이 페이지 ( )로 이미지를 전달할 수 있습니다. 그러면 모든 이미지에서 사용할 수 있습니까? –

+0

예. PHP 파일은 한 번에 하나의 이미지 만 표시하지만 HTML 코드는 여러 다른 이미지의 소스와 동일한 PHP 파일을 사용합니다. 하나의 특정 이미지를 가져 오기 위해 PHP 스크립트를 얻으려면 파일 이름이나 이미지 ID를 전달하면됩니다. – Travesty3

+0

PHP 스크립트에서'$ filename'을 사용하는 대신'$ _GET [ "filename"]'을 통해 파일 이름을 얻습니다. – Travesty3

관련 문제