PHP - 创建文件夹并将图像保存到该文件夹​​?然后显示那张照片?

时间:2013-07-09 22:01:21

标签: php image upload

这似乎是一个很大的问题,而且确实如此,但大多数已经完成,但实际上我已经失去了想要去的地方。

我已准备好上传表单并且它可以正常工作,它会将其保存到名为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";
        } 
?>

我仍然在搞乱它,但是如果有人能够让我朝着正确的方向发展,那就太棒了!谢谢你们!

2 个答案:

答案 0 :(得分:6)

您需要先创建目录,然后才能将文件移入其中。您可以先使用file_exists函数检查目录,然后创建所需的文件:

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

您可能更喜欢其他权限。

答案 1 :(得分:1)

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

P.S。你不会只用PHP来解决这个问题 对不起英格兰抱歉