предупреждение в mkdir и как отображать изображения из созданного каталога - PullRequest
1 голос
/ 07 января 2012

Моя программа должна создать папку для загруженных изображений в каталоге, но выдает это предупреждение:

mkdir () [function.mkdir]: файл существует в C: \ XAMP \ xampp \ htdocs \ gallery \ uploader3.php в строке 26

Вот код:

<html>
<head>
<title> Sample1  - File Upload on Directory </title>
</head>
<body>
<div align="center">
<form action="uploader3.php" method="post" enctype="multipart/form-data" >
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
        Create an Album (limited to 10 images): <br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <input type="file" name="uploadedfile[]"  /><br />
    <br />
    <input type="submit" value="Upload File"   />
</form>
</div>
<?php 
$target_path = "uploads1/";
if(!mkdir($target_path))
{
    die('Failed to create folders...');
}
else
{
    for($count = 0; $count < count($_FILES['uploadedfile']); $count++)
    {
        $target_path = $target_path . basename( $_FILES['uploadedfile']['name'][$count]); 

        if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'][$count], $target_path)) 
        {
            echo "The file ".  basename( $_FILES['uploadedfile']['name'][$count]). 
        " has been uploaded";
        } 
        else{
        echo "There was an error uploading the file, please try again!";
        }
    }
}

?>
</body>
</html>

Ответы [ 2 ]

2 голосов
/ 07 января 2012

Измените ваши коды ниже:

if(!mkdir($target_path))
{
    die('Failed to create folders...');
}

до:

if(!file_exist($target_path)) {
  if(!mkdir($target_path))
  {
      die('Failed to create folders...');
  }
}

Сначала будет проверена папка, если она уже существует, нет необходимости создавать ее снова.

для вашего 2-го вопроса вам нужно хранить имена загруженных изображений где-то (я думаю, что DB - хороший выбор), затем вы можете показывать их где угодно. Или вы можете использовать приведенные ниже коды для поиска в папке и их отображения:

$image_files = glob("uploads1/*.jpg");
foreach($image_files as $img) {
    echo "<img src='".$img."' /><br/>";
}
1 голос
/ 07 января 2012

Прежде чем пытаться его создать, вы должны проверить, что каталог еще не существует

if (!file_exists($target_path))
    mkdir($target_path);

if (file_exists($target_path))
{
    // Further processing here
}
else
{
    // Could not create directory
}
...