|
|
|
| Есть директория в которой находится следующий скрипт:
<?php
$dir = opendir("./dir");
while ($file = readdir ($dir))
{
echo "$file";
echo "<img src=\"small.php?file=$file\" border=0>";
echo "<img src=\"$file\">";
}
closedir($dir);
?>
в этой же директории находится другая директория dir. Скрипт открывает ее, считывает оттуда все файлы-картинки и по идее должен их выводить, но не отображает. Почему? Ведь открыта дирректория dir??? | |
|
|
|
|
|
|
|
для: Полина
(05.12.2007 в 19:43)
| | вот этот точно выводит. причем с пропорциональным ресайзом и установленным количеством столбцов:
<?
//echo realpath(".");
// Some configuration variables !
$maxWidth = 90;
$maxHeight = 90;
$maxCols2 = 6;
$webDir = "http://www.mysite.com/images/";
$localDir = realpath(".")."/";
// build the www path:
$me = $_SERVER['PHP_SELF'];
$Apathweb = explode("/", $me);
$myFileName = array_pop($Apathweb);
$pathweb = implode("/", $Apathweb);
$myURL = "http://".$_SERVER['HTTP_HOST'].$pathweb."/".$myFileName;
$PAGE_BASE['www'] = $myURL;
// build the file path:
strstr( PHP_OS, "WIN") ? $strPathSeparator = "\\" : $strPathSeparator = "/";
$pathfile = getcwd ();
$PAGE_BASE['physical'] = $pathfile.$strPathSeparator.$myFileName;
// this is so you can verify the results:
$www = $PAGE_BASE['www'];
$physical = $PAGE_BASE['physical'];
//echo "$physical<p>";
//echo "$www<p>";
$AutorisedImageType = array ("jpg", "jpeg", "gif", "png");
?>
<?
// Open localDir
$dh = opendir($localDir);
while (false !== ($filename = readdir($dh))) {
$filesArray[] = $filename;
}
// Display and resize
foreach ($filesArray as $images) {
$ext = substr($images, strpos($images, ".")+1, strlen($images));
if( in_array($ext, $AutorisedImageType) ) {
list($width, $height, $type, $attr) = @getimagesize( $localDir.$images );
$xRatio = $maxWidth / $width;
$yRatio = $maxHeight / $height;
if ( ($width <= $maxWidth) && ($height <= $maxHeight) ) {
$newWidth = $width;
$newHeight = $height;
}
else if (($xRatio * $height) < $maxHeight) {
$newHeight = ceil($xRatio * $height);
$newWidth = $maxWidth;
}
else {
$newWidth = ceil($yRatio * $width);
$newHeight = $maxHeight;
}
if($iii == $maxCols2) {
echo "</tr><tr>";
$iii = 0;
}?>
<td align='center' valign='middle' width='<?=$maxWidth?>' height='<?=$maxHeight?>'>
<a href="<?=$webDir?><?=$images?>"><img src='<?=$webDir?>s/<?=$images?>' width='<?=$newWidth?>' height='<?=$newHeight?>' border=0></a></td>
<?
$iii++;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: elenaki
(05.12.2007 в 19:57)
| | ну ладно.
а что такое realpath? | |
|
|
|
|
|
|
|
для: Полина
(05.12.2007 в 20:16)
| | это физический путь к скрипту на сервере. чтоб не переделывать пути под разные сайты... | |
|
|
|
|
|
|
|
для: elenaki
(05.12.2007 в 20:19)
| | ну т.е. если не переделывать под разные сайты это не нужно? | |
|
|
|
|
|
|
|
для: elenaki
(05.12.2007 в 19:57)
| | Да и вообще у меня другая задумка.
Мне хочется чтобы пользователь сам создавал директорию. Она в этом файле обрабатывалась и выводила из этой директ. уменьшенные изображения.
Вы лучше скажите все такие почему как я хочу не получается? | |
|
|
|
|
|
|
|
для: Полина
(05.12.2007 в 20:20)
| | у вас нет проверки на файл. в папке могут присутствовать не только файлы, а файлы могут быть не только картинками. потом неизвестно, что делает small.php
а физический путь к папке нужен. если б он был указан явно, типа /hosts/users/mysite/... и т.п.,
его надо было бы менять при переносе скрипта на другой сервер, пототму что там конечно другой путь. а так - не надо. | |
|
|
|
|
|
|
|
для: elenaki
(05.12.2007 в 20:26)
| | проверку на то чтобы файл был картинкой я убрала, чтобы сфокусировать на основной проблеме.
Файл small.php сжимает отображения. вот и он:
<?php
$wc=150;
$Oldimg=imagecreatefromjpeg($file);
$w=imagesx($Oldimg);
$h=imagesy($Oldimg);
header("Content-type: image/jpeg");
$ratio=$w/$wc;
$w1=$w/$ratio;;
$h1=$h/$ratio;
$Newimg=imagecreatetruecolor($w1,$h1);
imagecopyresampled($Newimg,$Oldimg,0,0,0,0,$w1,$h1,$w,$h);
imagejpeg($Newimg,"",100);
imgdestroy($Newimg);
imgdestroy($Oldimg);
?>
но и строчку, которая его испаользует можно пока проигнорить. понимаете он не отображает картику и другой строчкой.
Вот если я помещаю все файлы в текущую директорию и убираю директроия dir то все прекрасно работает.
Но если файлы в dir он их как будто не видит, но имя же он выводит! | |
|
|
|
|
|
|
|
для: elenaki
(05.12.2007 в 20:26)
| | да я как обычно курсарь пишу. путь на копме на кафедре могу такой же указать.
конечно наверно вы правы. просто я не очень понимаю это. и опускаю те штуки без которых можно обойтись. | |
|
|
|