如何在使用 move_uploaded_file() 时在 PHP 中创建目标(文件夹)?

发布于 2024-10-06 10:16:13 字数 571 浏览 0 评论 0原文

我想用 PHP 上传文件,我使用 move_uplload_files 将它们复制到我想要的目标文件夹,一切正常:

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'))
die("success");
else
die("error");

但是当我尝试这个时

$rand =  chr(rand(97, 122)). chr(rand(97, 122)). chr(rand(97, 122));
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$rand))
die("success");
else
die("error");

,我会收到错误,看起来 move_uploaded_files 不能 创建文件夹。我该怎么做?

基本上我正在寻找一种方法来做到这一点,例如 file_put_contents() ,它会创建路径(如果不存在)。

I want to upload files with PHP and i use move_uplload_files to copy them to the destination folder I want, everything works fine with this :

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'))
die("success");
else
die("error");

But when I try this

$rand =  chr(rand(97, 122)). chr(rand(97, 122)). chr(rand(97, 122));
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$rand))
die("success");
else
die("error");

I will get error, and it looks like move_uploaded_files can not create folders. How can I do this ?

Basically I am looking for a way to do it like file_put_contents() that creates the path if not exist.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

流云如水 2024-10-13 10:16:13

使用mkdir()

如果您需要创建多个文件夹(例如通过传递 a/b/c),请将第三个参数设置为 TRUE

您可以测试它是否已经存在,如果不存在则添加......

$path = 'abc';

if ( ! is_dir($path)) {
    mkdir($path);
}

Use mkdir().

If you need to make multiple folders, such as by passing a/b/c, set the third argument to TRUE.

You can test if it is already there, and add if not like so....

$path = 'abc';

if ( ! is_dir($path)) {
    mkdir($path);
}
非要怀念 2024-10-13 10:16:13

使用类似这样的内容:

$folder = "uploads"; 
if(!is_dir($folder)) mkdir($folder);

is_dir()检查该文件夹是否存在。

Use something like this:

$folder = "uploads"; 
if(!is_dir($folder)) mkdir($folder);

is_dir() checks if the folder is there.

自此以后,行同陌路 2024-10-13 10:16:13

这对我有用:

$path = "upload/";
$name = $_FILES["file"]["name"];
// Remove dangerous characters from filename.
$name = str_replace('..', '', $name);
$name = str_replace('/', '', $name);
$name = str_replace('\\', '', $name);

if (($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
&& ($_FILES["file"]["size"] < 2000000)) {
      if ($_FILES["file"]["error"] > 0) {
        echo "Error " . $_FILES["file"]["error"] . "<br>";
      } else {
        if(file_exists($path.$name)){
            echo "$path$name already exists. ";
        } else {                
            @mkdir($path, 0666, true);  // Create non-executable upload folder(s) if needed.
            move_uploaded_file($_FILES["file"]["tmp_name"], $path.$name);
            echo "Stored in: $path$name";
        }
    }
} else {
    echo "Invalid file. Allowed are JPG smaller than 2 MB.";
}

This works for me:

$path = "upload/";
$name = $_FILES["file"]["name"];
// Remove dangerous characters from filename.
$name = str_replace('..', '', $name);
$name = str_replace('/', '', $name);
$name = str_replace('\\', '', $name);

if (($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
&& ($_FILES["file"]["size"] < 2000000)) {
      if ($_FILES["file"]["error"] > 0) {
        echo "Error " . $_FILES["file"]["error"] . "<br>";
      } else {
        if(file_exists($path.$name)){
            echo "$path$name already exists. ";
        } else {                
            @mkdir($path, 0666, true);  // Create non-executable upload folder(s) if needed.
            move_uploaded_file($_FILES["file"]["tmp_name"], $path.$name);
            echo "Stored in: $path$name";
        }
    }
} else {
    echo "Invalid file. Allowed are JPG smaller than 2 MB.";
}
﹎☆浅夏丿初晴 2024-10-13 10:16:13

首先使用 mkdir() 创建目录

  $rand =  chr(rand(97, 122)). chr(rand(97, 122)). chr(rand(97, 122));
    mkdir('./uploades/'.$rand);
    if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$rand))
    die("success");
    else
    die("error");

Create the directory first using mkdir()

  $rand =  chr(rand(97, 122)). chr(rand(97, 122)). chr(rand(97, 122));
    mkdir('./uploades/'.$rand);
    if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], './uploades/'.$rand))
    die("success");
    else
    die("error");
远山浅 2024-10-13 10:16:13
if($_FILES['file_up']['type']=='image/jpeg' || $_FILES['file_up']['type']=='image/png' || $_FILES['file_up']['type']=='image/gif')
{
    move_uploaded_file($_FILES['file_up']['tmp_name'],'uploads/'.time().$_FILES['file_up']['name']);
}
else
{
    echo "Upload only image file..";
}
if($_FILES['file_up']['type']=='image/jpeg' || $_FILES['file_up']['type']=='image/png' || $_FILES['file_up']['type']=='image/gif')
{
    move_uploaded_file($_FILES['file_up']['tmp_name'],'uploads/'.time().$_FILES['file_up']['name']);
}
else
{
    echo "Upload only image file..";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文