Silverstripe上传文件到根文件夹

时间:2014-06-19 06:42:08

标签: php silverstripe

我正在使用Silverstripe 3.0 X ..我创建了一个新的上传字段,工作正常并将文件上传到资产中的Uploads文件夹。

我想将上传路径设置为public_html /中的根目录 我知道我们可以使用

设置路径
 $uploadField->setFolderName('customfolder');
 // This will create a new folder inside assets/Uploads/customfolder

但我需要进行一些更改,以便我可以将文件直接上传到根文件夹。 我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

嗯,虽然你可以,可能设置为'/',但你的问题的简单答案就是为什么你需要它?由于许可问题,它永远不需要也无法完成。

你真的不能允许根文件夹的写权限,对吗?您的根文件夹包含重要文件,并且只能是Web可见(不可写)。

您需要上传文件才能转到资产或任何其他您愿意提供更高权限的客户文件夹。

如果您确实需要将文件添加到根文件夹,则应直接通过FTP或直接复制粘贴。

您可以将文件上传到资源或其他目录,但仍然将.htaccess设置为公开显示为/myimage.jpg或其他内容。但这是另一个问题。

答案 1 :(得分:0)

当您上传到资源时,您的apache用户将获得您上传到的/ assets路径的所有权。这在Silverstripe中很方便,因为您可以使用界面上传/下载文件,并且您通常不会物理编辑图像的代码本身,这意味着除了Silverstripe本身之外,没有人需要写入或执行权限。

但是,您经常需要在根目录及以下编辑php类,css或配置文件。如果你经常被迫chmod东西或以apache用户身份登录,这可能会变得乏味。

如果你需要上传到root,我建议你上传到资产中的一个文件夹,并可能将它存储的实际文件夹名称保存为类中的配置变量。这样,您只需检查类config()并使用Director或Folder来获取资产URL。

您还可以将文件作为File对象保存在数据库中。