|
|
|
|
|
для: EvgenLog
(29.09.2005 в 16:53)
| | >1) Что-то я не понял, что нужно исправить...
У вас не выводится изображение? Всё правильно блок
<tr>
<td>
<img src='img.php?file=$source' border='0' alt='$name'>
</td>
</tr>
<tr>
|
его и не выведет, так как он не отправляет его в окно браузера - для того, чтобы изображение выводилось необходимо написать скрипт его вывода. | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 12:15)
| | 1) Что-то я не понял, что нужно исправить...
2) С Деневером вообще глюки какие-то...
Вот смотрите код...
<html>
<body>
<table border='1'>
<tr>
<td>
<center>
Загрузка
</center>
<form action='upload.php' method='POST' enctype='multipart/form-data'>
<table border='1'>
<tr>
<td>
Укажите файл
</td>
</tr>
<tr>
<td>
<input type='file' name='filename'>
</td>
</tr>
<tr>
<td>
Директория
</td>
</tr>
<tr>
<td>
<select name='dir_name'>
<?php
$main_img_dir="Gallery";
chdir("./$main_img_dir/");
$handle=opendir(".");
while($file=readdir($handle)!=false)
{
if(is_dir($file))
{
echo "<option>".$file."</option>";
}
}
?>
</select>
<input type='submit' value='Загрузить'>
</form>
</body>
</html>
|
В <select> должен быть список с содержащимися в директории "Gallery" папками.... Там пусто... На Linux все работает без проблем... Может и с прошлым скриптом тоже что-то из-за него? Бесит... А в Linux лезти не охото... Или всё-таки придётся... Проблема неустранима? | |
|
|
|
|
|
|
|
для: EvgenLog
(29.09.2005 в 10:04)
| | Тогда тэг
<img src='img.php?file=$source' border='0' alt='$name'>
|
не имеет смысла, ведь img.php не возвращает изображения... функция resizeimg() возвращает только true... | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 00:40)
| | Выводится, что нет файла... Так и должно быть, ведь переменная ничего не содержит...
Вот код файла img.php
<?
// Здесь можно и нужно добавить код, проверяющий
// содержимое переменной $_GET["file"]
// Вдруг вам хакер или просто любопытствующий туда
// что-нибудь не то передаст
$filename = $_GET["file"];
// Вызываем функцию масштабирования
resizeimg($filename, 130,130);
// Функция масштабирования
function resizeimg($filename, $w, $h)
{
// определим коэффициент сжатия изображения, которое будем генерить
$ratio = $w/$h;
// получим размеры исходного изображения
$size_img = getimagesize($filename);
// Если размеры меньше, то масштабирования не нужно
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
// Здесь вычисляем размеры уменьшенной копии,
// чтобы при масштабировании сохранились
// пропорции исходного изображения
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
// создадим пустое изображение по заданным размерам
$dest_img = imagecreatetruecolor($w, $h);
$white = imagecolorallocate($dest_img, 255, 255, 255);
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename);
else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);
else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename);
// масштабируем изображение функцией imagecopyresampled()
// $dest_img - уменьшенная копия
// $src_img - исходной изображение
// $w - ширина уменьшенной копии
// $h - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $size_img[1] - высота исходного изображения
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
// Выводим уменьшенную копию в поток вывода
if ($size_img[2]==2) header('Content-type: image/jpg');
else if ($size_img[2]==1) header('Content-type: image/gif');
else if ($size_img[2]==3) header('Content-type: image/png');
// Выводим уменьшенную копию в поток вывода
if ($size_img[2]==2) imagejpeg($dest_img);
else if ($size_img[2]==1) imagegif($dest_img);
else if ($size_img[2]==3) imagepng($dest_img);
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
?>
|
А вот часть кода из файла img_resizing.php, которая отвечает за содеражание переменной "$source", а следовательно и за "$filename"...
<?php
$main_img_folder = "./Files/Gallery/Images/";
$open_main_img_folder = opendir($main_img_folder);
$image_extensions = array("jpg", "png", "bmp", "jpe", "jpeg");
while($images = readdir($open_main_img_folder))
{
$img_name_array = explode(".", $images);
$img_type = end($img_name_array);
if(is_file($main_img_folder.$images) && in_array($img_type, $image_extensions))
{
$source=$main_img_folder.$images;
...
...
...
//И вот так выводится на экран...
<img src='img.php?file=$source' border='0' alt='$name'>
...
...
...
?>
|
Повторяю, почему-то все работает, если скрипт лежит в главной директории (www), оттуда до любой папки можно добраться... | |
|
|
|
|
|
|
|
для: EvgenLog
(29.09.2005 в 00:18)
| | А функция точно возвращает изображение? Что происходит если взять из HTML-кода img.php?file=$source и подставить в окно браузера - может выводятся какие-то ошибки? | |
|
|
|
|
|
|
|
для: cheops
(29.09.2005 в 00:00)
| | img.php - то что масштабирует файлы...
Скрипт работает тоько из дериктории www почему-то... | |
|
|
|
|
|
|
|
для: EvgenLog
(28.09.2005 в 19:19)
| | Что такое img.php и какой в нём код? | |
|
|
|
|
|
|
|
для: cheops
(27.09.2005 в 23:13)
| | Не работает... Почему-то... Если написать вот так:
<?php
$main_img_folder = "z:/home/NewServer.ru/www/Files/Gallery/Images/";
$open_main_img_folder = opendir($main_img_folder);
//и т.д.
?>
|
То выводится имя файла, разрешение, а вот сама картинка - нет... Красный крестик...
Вот таким скриптом он должен отображаться в браузере...
<?php
echo "<table align='center' valign='top' border='1'>
<tr>
<td>
<img src='img.php?file=$source' border='0' alt='$name'>
</td>
</tr>
<tr>
<td>
<center>
<font color='#2954D1'><b>$size_img[0]x$size_img[1]</b><br>
<a href='$main_url/$main_files_dir/Gallery/Images/$name.jpg'><b>$name</b>
</font>
</center>
</td>
</tr>
</table>";
?>
|
Но не всё отображается... в чём дело? | |
|
|
|
|
|
|
|
для: EvgenLog
(27.09.2005 в 23:11)
| | Нужно ещё на один уровень подняться
<?php
$main_img_folder = "../../Gallery/Images/";
$open_main_img_folder = opendir($main_img_folder);
//и т.д.
?>
|
| |
|
|
|
|
|
|
| Два файла img.php и resizeimg.php лежат вот здесь:
Z:\home\NewServer.ru\www\Files\Gallery\Image_Processing\img.php
Z:\home\NewServer.ru\www\Files\Gallery\Image_Processing\resizeimg.php
Мне нужно, чтобы масштабировались картинки, которые лежат вот здесь:
Z:\home\NewServer.ru\www\Files\Gallery\Images\
Пишу в файле resizeimg.php:
<?php
$main_img_folder = "../Gallery/Images/";
$open_main_img_folder = opendir($main_img_folder);
//и т.д.
?>
|
Получаю ошибку:
Warning: opendir(../Gallery/Images/): failed to open dir: Invalid argument in z:\home\newserver.ru\www\Files\Gallery\Image_Processing\resizing.php on line 5
Warning: readdir(): supplied argument is not a valid Directory resource in z:\home\newserver.ru\www\Files\Gallery\Image_Processing\resizing.php on line 8
Что тут не так??? Не понимаю... Подскажите пожалуйста...
Спасибо... | |
|
|
|
|