【问题标题】:PHP - Create a folder and save an image to that folder? Then display that photo?PHP - 创建一个文件夹并将图像保存到该文件夹​​?然后显示那张照片?
【发布时间】:2013-07-09 22:01:21
【问题描述】:

这似乎是个大问题,确实如此,但大部分都完成了,但我迷失在真正到达我想去的地方。

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

我还在搞砸它,但如果有人能把我撞到正确的方向,那就太棒了!谢谢大家!

【问题讨论】:

    标签: php image upload


    【解决方案1】:

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

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

    您可能更喜欢其他权限。

    【讨论】:

    • 我什至没有想到哈哈,这是朝着正确方向迈出的一步。现在只需将其指定为会话的特定名称即可。
    【解决方案2】:

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

    附言你不会只用 php 解决这个问题 对不起英语不好

    【讨论】:

    • 我有 jQuery 处理一切,只是它不会影响上传。不过谢谢!我得弄清楚这方面的设置。
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 2021-03-29
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    相关资源
    最近更新 更多