【问题标题】:How to move uploaded file from temporary directory to a newly created folder inside a permanent directory如何将上传的文件从临时目录移动到永久目录中新创建的文件夹
【发布时间】:2013-12-26 05:30:26
【问题描述】:

以下脚本上传成功,并将文件移动到永久目录。

我正在父永久目录中创建一个名称为配置文件 ID 的新文件夹,以便所有上传的文件都可以位于具有配置文件名称的文件夹中,并且在父文件夹中创建新文件夹.

问题:当文件被移动时,它被移动到父文件夹,而不是新创建的文件夹。

PHP 上传脚本。

<?php
define("UPLOAD_DIR", "images/$Pid");
if (!file_exists(UPLOAD_DIR)){
    mkdir(UPLOAD_DIR, 0777, true);
    }
if (!empty($_FILES["imageUpload"])){
    $myFile = $_FILES["imageUpload"];

    if ($myFile["error"] !== UPLOAD_ERR_OK) {
        echo "<p>An error occurred.</p>";
        exit;
    }
    $name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);

    $i = 0;
    $parts = pathinfo($name);
    while (file_exists(UPLOAD_DIR . $name)) {
        $i++;
        $name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
    }

    $success = move_uploaded_file($myFile["tmp_name"],
        UPLOAD_DIR . $name);
    if (!$success) { 
        echo "<p>Unable to save file.</p>";
        exit;
    } else {
        $imageDir = UPLOAD_DIR .'/'. $_FILES["imageUpload"]["name"];
        echo $imageDir;
    }
    chmod(UPLOAD_DIR . $name, 0644);
}

?>

谢谢。

【问题讨论】:

  • 我认为你在这段代码中有错误。define("UPLOAD_DIR", "images/$Pid");改成这个define("UPLOAD_DIR", "images/".$Pid."/");

标签: php image-uploading chmod mkdir file-exists


【解决方案1】:

改变

$success = move_uploaded_file($myFile["tmp_name"],
    UPLOAD_DIR . $name);

$success = move_uploaded_file($myFile["tmp_name"],
    UPLOAD_DIR . '/'.$name);

【讨论】:

    猜你喜欢
    • 2020-07-02
    • 1970-01-01
    • 2014-01-19
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    相关资源
    最近更新 更多