如何将上传的文件从临时目录移动到永久目录中新创建的文件夹
Posted
技术标签:
【中文标题】如何将上传的文件从临时目录移动到永久目录中新创建的文件夹【英文标题】: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."/"); 【参考方案1】:改变
$success = move_uploaded_file($myFile["tmp_name"],
UPLOAD_DIR . $name);
到
$success = move_uploaded_file($myFile["tmp_name"],
UPLOAD_DIR . '/'.$name);
【讨论】:
以上是关于如何将上传的文件从临时目录移动到永久目录中新创建的文件夹的主要内容,如果未能解决你的问题,请参考以下文章