【问题标题】:Upload file into "assets" folder via move_uploaded_file()通过 move_uploaded_file() 将文件上传到“assets”文件夹
【发布时间】:2016-12-02 10:23:19
【问题描述】:

在 Service Cloud (FKA RightNow) 客户门户中,“assets”文件夹不是可写的吗?

我正在尝试将文件上传到“资产”文件夹内的子文件夹,但我似乎遇到了权限问题。我使用的代码是:

$file_name = "File_".time().".txt";
if(move_uploaded_file($_FILES['upload']['tmp_name'], HTMLROOT . '/euf/assets/uploads/text/'.$file_name))
{
    header("Location: /app/read_file/file_name/".$file_name);
    exit;
}

这是抛出一个错误,指出:

对 move_uploaded_file 的访问被拒绝,因为它试图访问......中的受限文件夹

有没有办法通过PHP将上传的文件保存到“assets”子文件夹中?

编辑:

目的地似乎是正确的,好像我使用:

echo HTMLROOT . '/euf/assets/uploads/text/'.$file_name

打印出来:

/vhosts/sitename/euf/assets/upload/text/File_1480674311.txt

因此引用了正确的文件路径,但不知何故框架不允许我将其保存在那里。

更新

用例是这样的,一个人将通过 CP 上传一个 CSV/TXT 文件。该文件将包含联系信息(姓名、电子邮件等),然后将读取(在稍后阶段)以在 OSvC 中创建联系人。这将是一个重复的过程,可能每月两次或三次。

由于在上传时不会读取文件,因此将文件存储在某个地方是理想的解决方案。

【问题讨论】:

    标签: php rightnow-crm oracle-service-cloud


    【解决方案1】:

    正确,文件夹受 WebDAV 和文件系统强制执行的用户权限的保护。而且,assets 文件夹并不是用于上传文件的文件存储机制,就像您在此容量中使用的那样。

    您是否有理由将文件放置在资产中,而不是将它们附加到在客户门户中操作的某人的上下文中的事件或联系人对象?

    如果您希望在客户门户中构建某种内容管理,那么我建议您使用一个单独的文件存储产品,该产品提供一个 API,您可以在其中更精细地管理文件,例如 Oracle 云数据存储,然后您可以在 CP 中提供这些文件。

    【讨论】:

    • 嗨,斯科特。用例是这样的,客户端将通过 CP 上传 CSV/TXT 文件。该文件将包含联系信息(姓名、电子邮件等),然后将读取(在稍后阶段)以在 OSvC 中创建联系人。这将是一个反复出现的过程。正如建议的那样,我可以将其存储为事件附件,但我想避免为此目的创建事件。但是,如果没有其他方法可以将文件上传到文件系统,那么我想我将不得不考虑一种解决方法。 Oracle 云数据存储是一种选择,但我认为这将花费额外的美元。
    • 根据@Luke G 的cmets,这不是您甚至应该考虑实施的做法。即使在代码级别,也不应该将客户数据存储在 FS 上未经处理的平面文件中;您至少需要加密文件。如果您需要自动化数据传输,请使用 REST 或 SOAP Web 服务来避免您在当前路线上遇到的麻烦。
    【解决方案2】:

    assets 文件夹中存储联系人记录或任何其他敏感数据是非常糟糕的做法。这些文件像资产文件夹中存储的任何其他文件一样向公众开放 - css、js、图像...

    文件结构中的其他文件夹更适合此目的。它们只能从代码级别访问。

    您是否有机会使用 v16.8?

    【讨论】:

    • 这很好。但是,我不确定 CP 的任何文件夹是否会启用写入权限以允许文件上传。不确定v16.8,但这是我从管理部分得到的Build 619 SP 2, CP 619
    • 查看当前版本的方法如下:YORSITE.custhelp.com/ci/about
    • 同样的事情Software Version: Oracle Service Cloud August 2016 (Build 619, CP 619) SP2
    • 2016 年 8 月 = 16.8 当您升级到下一个版本时,此问题可能会消失。在此之前尝试使用不同的文件夹,例如“./custom”(也向公众开放)。
    猜你喜欢
    • 2012-09-19
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 2011-11-30
    • 2013-09-26
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多