PHP创建文件夹(如果不存在)

马克

我正在创建一个中等大小的应用程序。

此应用程序包含许多产品。

现在这些产品有很多图像(一个产品可以有5-6张图像)

为了尝试进行某种排序,我想为每种产品创建一个文件夹,该文件夹包含与该产品绑定的所有图像。

到目前为止,我已经尝试了以下方法:

move_uploaded_file($file, APP.'product_images/'.$product_id.'/'.$image['name']);

但是,当我尝试此操作时,出现以下错误:

Warning (2): move_uploaded_file(/var/www/udlejnings-priser/cake/app/product_images/22/afterClick.png): failed to open stream: No such file or directory [APP/Controller/ImagesController.php, line 56]

Warning (2): move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php472ci6' to '/var/www/udlejnings-priser/cake/app/product_images/22/afterClick.png' [APP/Controller/ImagesController.php, line 56]

现在我还不是一个完整的菜鸟,并且知道这意味着我缺少该文件夹的权限。

但是,问题在于,如果该文件夹不存在(即这是第一次上传该产品的图像),则应创建一个新文件夹。

我的问题分为两部分。

  1. 如果它不存在,这会自动创建一个新文件夹吗?
  2. 如何授予对新创建的文件夹的权限,以避免出现此问题?
AD7six

[我]知道这意味着我缺少对该文件夹的许可。

实际上没有=)。错误消息显示为:

无法打开流:没有这样的文件或目录

这没有涉及到问题的权限:您要写入的包含文件夹不存在。

如果它不存在,这会自动创建一个新文件夹吗?

不。

如何授予对新创建的文件夹的权限?

不必这样做-创建的任何内容都将具有正确的权限,以允许Web服务器用户读取文件。但是,首先必须尝试创建一个文件夹,但问题并非如此。

使用CakePHP,Folder类可用于执行以下操作:

App::uses('Folder', 'Utility');
$dir = new Folder('/path/to/folder', 2);

第二个参数用于创建一个不存在的新文件夹在问题的上下文中,这意味着代码将如下所示:

function whatever() {

    if ($this->request->data) {
        ...
        
        $unused = new Folder(APP.'product_images/'.$product_id, true);
        if (move_uploaded_file($file, APP.'product_images/'.$product_id.'/'.$image['name'])) {
            ...
        } else {
            ...
        }
    }
}

该文件夹APP/product_images应该已经存在,并且必须具有权限,以便Web服务器用户(例如apache)可以对其进行写入,否则将无法创建子文件夹/上传文件。假设APP/product_images存在并且Web服务器用户具有写入权限,则无需修改上传文件的权限-默认情况下,该用户可以读取该用户创建的文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建文件夹(如果尚不存在)

Powershell创建文件夹(如果不存在)

如果文件夹不存在,则在 vbs 中创建文件夹

如果不存在,则创建文件夹,如果不存在,则不执行任何操作

当目录不存在时创建文件夹

如果不存在,则在应用程序支持中创建文件夹

创建文件夹路径(如果不存在)(保存问题)

如果C#中不存在,则自动创建文件夹

如果C ++中不存在该如何创建文件夹?

递归将文件添加到文件夹并创建文件夹(如果不存在)

PHP脚本创建文件(如果不存在)

如果文件夹不存在,请创建它

如果不存在php,则在其他文件夹中创建txt文件

如果尚不存在WinSCP和批处理文件,则在SFTP服务器上创建文件夹

如果不存在,Python不会创建文件

创建文件(如果尚不存在)

Java FileOutputStream创建文件(如果不存在)

如果Groovy中不存在,则创建文件

C ++创建文件(如果不存在)

MSBuild复制或创建文件(如果不存在)

Exceljs 如果不存在则创建文件时出错

检查FTP文件夹是否存在,如果不存在,则创建它

将文件保存到输出文件夹,如果它不存在则创建它

在云端硬盘中创建新文件夹(如果尚不存在)

创建中间文件夹(如果不存在)

Ansible-创建多个文件夹(如果不存在)

使用python创建多个文件夹(如果不存在)

在 C# 中,如果 SharePoint 网站上不存在文件夹,如何创建该文件夹

如果文件夹不存在,如何检查和创建文件夹?以及如何使每次按 K 键时都会截取一张屏幕截图?