Загрузка изображений

Maxxis

Новичок
Доброго времени суток
У меня вопрос таков , не могу понять как сделать так ,что-бы выводились все загруженные изображения
кто может помочь ?
PHP:
<?php
$messages = array();$thumbwidth=120;
@mkdir($_SESSION['advid'], 0777);
$imgDir = dirname(__file__) . "/".$_SESSION['advid']."/fullsize/"; // каталог для хранения изображений
@mkdir($imgDir, 0777); // создаем каталог, если его еще нет
if (isset($_POST['doUpload'])) {
    $data = $_FILES['userfile'];
    $tmp = $data['tmp_name']; //это просто для удобства
    if (@file_exists($tmp)) {  //итак, если файл на месте, то
        $info = @getimagesize($_FILES['userfile']['tmp_name']); //берем информацию о файле
          /* if ($MAX_FILE_SIZE<$_FILES['userfile']['size']){
            	$messages[]="4MB";
            	end();}
            	*/
        if (preg_match('{image/(.*)}is', $info['mime'], $p)) {  //убеждаемся что файл есть ни что иное как изображение

            $newwidth = 500; //в данную переменную мы помещаем желаемую ширину файла   fullsize
            $newname = $imgDir . basename($data['name']); //имя файла оставляем прежним

            if ($info[0] < $newwidth){ // если ширина загужаемого изображения
              //меньше заданной в переменной, просто сохраняем файл
              if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newname)) {


                $imgDir = dirname(__file__) . "/".$_SESSION['advid']."/thumbs/"; // каталог для хранения изображений
                @mkdir($imgDir, 0777);
                 //Ширина изображения thumbs
                  $newname = $imgDir . basename($data['name']);
                  resize($tmp, $thumbwidth, $newname);
                  move_uploaded_file($newpic,$newname);
              $messages[] = "Файл успешно загружен. ";


            }
            else {
              $messages[] = "Ошибка загрузки файла!";
            }
            }
            else {
              // а если больше, то ресайзим
              // функцию ресайза мы напишем дальше
              if(resize($tmp, $newwidth, $newname)){

                 $imgDir = dirname(__file__) . "/".$_SESSION['advid']."/thumbs/"; // каталог для хранения изображений
                 @mkdir($imgDir, 0777);
                   //Ширина изображения  thumbs
                  $newname = $imgDir . basename($data['name']);
                  resize($tmp, $thumbwidth, $newname);
                  move_uploaded_file($newpic,$newname);

                   $messages[]= "<img src=http://localhost:8080/virtual-auto.com/auto/".$_SESSION['advid']."/thumbs/".$data['name']."></img>";

              }
              else {
                $messages[] = "Произошла ошибка при загрузке файла";
              }
            }
        }
        else {
            $messages[] = "Ошибка! Попытка загрузить файл недопустимого формата.";
        }
    }
    else {
        $messages[] = "Вы не выбрали файл для загрузки.";
    }
}
?>

<form name="upload" action="addadvert.php" method="POST" ENCTYPE="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="5000000">
 Вбери файл для загрузки: <input type="file" name="userfile"></ br>
 <input type="submit" name="doUpload" value="Загрузить">

</form>

 <ul>
 <?php


    foreach ($messages as $val) {
      echo "<li>" . $val ."</li>" ;

    }

?>
Заранее спасибо .
 

Xupypr

Новичок
scandir - Получить список файлов и каталогов в отсортированном виде (по умолчанию, сортировка в алфавитном порядке по возрастанию). Функция появилась в PHP5.

PHP:
$file_list = scandir($imgDir);
// или для сортировки по убыванию так: $files2 = scandir($imgDir, 1);
 
/* Результатом будет нечто вроде:
Array (
      [0] => .
      [1] => ..
      [2] => logo.png
      [3] => porno.jpg
... и тд.
)
*/
 

Maxxis

Новичок
ЛЮДИ .........АААААААААУУУУУУУУУУУ....КТО МОЖЕТ ???
ПОМОГИТЕ )))
 

Xupypr

Новичок
А какие идеи еще могут быть?? По моему решение отвечает на вопрос "как сделать так ,что-бы выводились все загруженные изображения".
Или что-то другое надо? Напишите конкретнее тогда.
 

Maxxis

Новичок
А какие идеи еще могут быть?? По моему решение отвечает на вопрос "как сделать так ,что-бы выводились все загруженные изображения".
Или что-то другое надо? Напишите конкретнее тогда.
Дело в том,что изображение ,недавно загруженное изображение выводит, но когда загружается еще одно -то выводит последнее загруженное, а нужно что-бы выводило все.
Не могу сообразить как это сделать, думал с циклом,но не могу понять как именно .
 

scorpion-ds

Новичок
Дело в том,что изображение ,недавно загруженное изображение выводит, но когда загружается еще одно -то выводит последнее загруженное, а нужно что-бы выводило все.
Не могу сообразить как это сделать, думал с циклом,но не могу понять как именно .
Не пойму, чем вас первый совет не устроил?

Если я правильно понял,то у вас:
PHP:
$messages[]= "<img src=http://localhost:8080/virtual-auto.com/auto/".$_SESSION['advid']."/thumbs/".$data['name']."></img>";
Выводит только что загруженный файл, ну это очевидно в общем.

Как вам уже сказали используйте scandir, что-то вроде такого:

PHP:
$file_list = scandir($imgDir);
foreach($file_list as $item) {
   $messages[]= "<img src=http://localhost:8080/virtual-auto.com/auto/".$_SESSION['advid']."/thumbs/". $item."></img>";
}
пример грубый, но по идеи должен работать.
 

Maxxis

Новичок
Не пойму, чем вас первый совет не устроил?

Если я правильно понял,то у вас:
PHP:
$messages[]= "<img src=http://localhost:8080/virtual-auto.com/auto/".$_SESSION['advid']."/thumbs/".$data['name']."></img>";
Выводит только что загруженный файл, ну это очевидно в общем.

Как вам уже сказали используйте scandir, что-то вроде такого:

PHP:
$file_list = scandir($imgDir);
foreach($file_list as $item) {
   $messages[]= "<img src=http://localhost:8080/virtual-auto.com/auto/".$_SESSION['advid']."/thumbs/". $item."></img>";
}
пример грубый, но по идеи должен работать.
Я вставил ваш пример ,но в результате вообще выводит пустую страницу,может я что-то делаю неправильно? пж помогите ,я в пхп совсем недавно )))
 

scorpion-ds

Новичок
Я вставил ваш пример ,но в результате вообще выводит пустую страницу,может я что-то делаю неправильно? пж помогите ,я в пхп совсем недавно )))
Ту да ли вы вставили код?
Включите показ ошибок, на тестовой сервере это необходимая вещь, так как по всей видимости у вас не просто пустой экран, а какие-то ошибки, также их можно посмотреть в логах.
 

Maxxis

Новичок
Ту да ли вы вставили код?
Включите показ ошибок, на тестовой сервере это необходимая вещь, так как по всей видимости у вас не просто пустой экран, а какие-то ошибки, также их можно посмотреть в логах.
Спасибо,попробую и отпишусь о результате.
 

Maxxis

Новичок
Спасибо,разобрался, у меня рнр 4.3.3 стоял-установил 5 -все пошло )
 
Сверху