PHP-创建一个文件夹并将图像保存到该文件夹中?然后显示该照片


PHP - Create a folder and save an image to that folder? Then display that photo?

这似乎是一个大问题,确实如此,但大多数问题都解决了,但我迷失了方向。

我已经准备好了上传表格,它可以工作,它会将其保存到一个名为upload的文件夹中,但我需要它来创建一个文件夹,这取决于我会话中保存的酒店名称。它显示在页面上,告诉用户他们正在进行哪个会话。所以现在当他们保存时,我需要它来创建以它命名的文件夹,以将它保存到该目录中。以下是HTML的代码:

<span class="prettyFile">
                                    <form id="form" action="assets/php/upload.php" method="post" enctype="multipart/form-data">  
                                        <div class="fileupload fileupload-new" data-provides="fileupload">
                                          <div class="input-append">
                                            <div class="uneditable-input span3" style="margin-top: -3px;"><i class="icon-file fileupload-exists"></i> <span class="fileupload-preview"></span></div><span class="btn btn-file btn-success"><span class="fileupload-new">Upload File</span><span class="fileupload-exists">Change</span><input type="file" name="file" /></span><a href="#" class="btn fileupload-exists btn-success" style="margin-top: -3px;" data-dismiss="fileupload">Remove</a>
                                            <button type="submit" name="submit" class="btn btn-primary fileupload-exists" value="Upload"><i class="icon-cloud-upload"></i> Upload</button>
                                          </div>
                                        </div>
                                    </form>
                                </span>

这是PHP:

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 10000000)
&& in_array($extension, $allowedExts))
    if (file_exists("upload/". $_SESSION['curHotelName'] . "/" . $_FILES["file"]["name"]))
        {
          echo "<script language='javascript'>'n";
          echo "alert('This file exists! Please select a different file.'); window.location.href='https://hotelmobidev.jvgames.com/profile';";
          echo "</script>'n";
        }
        else
        {
          move_uploaded_file($_FILES["file"]["tmp_name"],
          "upload/". $_SESSION['curHotelName'] . "/" . $_FILES["file"]["name"]);
          echo "<script language='javascript'>'n";
          echo "alert('Success!'); window.location.href='https://hotelmobidev.jvgames.com/profile';";
          echo "</script>'n";
        } 
?>

我仍在努力,但如果有人能朝着正确的方向撞我,那就太棒了!谢谢大家!

您需要先创建目录,然后才能将文件移动到其中。您可以使用file_exists函数首先检查目录,然后根据需要创建它:

if (!file_exists('path/to/directory')) {
  mkdir('path/to/directory', 0777, true);
}

您可能更喜欢其他权限。

Ajax可以帮助您;)制作一个脚本-用于上传第二个-用于检查文件夹中的文件&如果存在-显示

附言:仅使用php无法解决此问题抱歉英文不好