저는 PHP에서만 기본 기술을 가지고 있으며 웹 사이트에 사진 갤러리를 설치해야했습니다. 이 웹 사이트는 프로그래밍 지식이 거의없는 사람들이 사용하기 때문에 사진이있는 폴더를 업로드 (FTP를 통해 편집)하고 사진 갤러리 축소판이 자동으로 표시되며 축소판을 클릭하면 전체를 표시합니다 크기 이미지.PHP/GD - 갤러리의 사진 축소판 그림 : 임의 표시
비행 중에 미리보기 이미지를 생성하는 스크립트를 사용했습니다. 이 스크립트는 브라우저에서 직접 호출하면 제대로 작동하는 것 같습니다. 내 미리보기 이미지를 얻을 수 있습니다. 그러나 내 페이지에 갤러리를 표시 할 때 각 이미지 소스는 내 스크립트 호출이며 축소판 그림의 임의의 부분 집합 만 표시되고 나머지는 대체 텍스트 만 표시됩니다. 예를 들어 8의 갤러리에서 갤러리를 처음 볼 때 나는 3,4,5 번 밖에 얻을 수없는 페이지를 표시합니다.
오류 메시지가 없습니다. 다른 엄지 손가락에 의해로드되지,하지만 여기에 PHP에서 내 기본적인 기술은 나를 실패 할 수 있습니다, 아마도 난 그냥 어디로 그런 오류 메시지를 찾으러하지 않았다.
<a href="resources/galleries/example.jpg"><img src="mini.php?f=example.jpg" alt="Photo" /></a>
및 mini.php 사용 GD :
<?php
$ratio = 150;
$dir = './resources/galleries';
if (!isset($_GET['f'])) {
header('location: index.php');
exit();
}
else {
$image = $_GET['f'];
$tableau = @getimagesize($dir.'/'.$image);
if ($tableau == FALSE) {
header('location: index.php');
exit();
}
else {
// if jpeg
if ($tableau[2] == 2) {
$src = imagecreatefromjpeg($dir.'/'.$image);
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
header ("Content-type: image/jpeg");
imagejpeg ($im);
}
elseif ($tableau[2] == 3) { // PNG
$src = imagecreatefrompng($dir.'/'.$image);
if ($tableau[0] > $tableau[1]) {
$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
}
else {
$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
}
header ("Content-type: image/png");
imagepng ($im);
}
}
}
?>
어떤 생각이 여기에
내 스크립트에 대한 호출입니까?
사실 웹 사이트 외부에서 FTP로 업로드하기 때문에 파일 이름을 확인하지 않습니다. 그러나 여기에서는 이름을 두 번 확인했는데 문제가 없습니다. 어쨌든, 내가 말했듯이 각 축소판은 때로는 표시되며, thumbnailer가 브라우저에서 직접 호출 될 때 모두 작동합니다. – Steph
확인. 경로 오류 일 수 있습니까? mini.php는 하위 폴더에 있습니다. 만약 당신이 그것을 이미지에서 불러 낸다면, 아마도 '$ dir.'/ ''이 더 이상 적절하지 않기 때문입니다. 그렇지 않다면, 어떤 해결책도 찾지 못해서 미안합니다 ... –