我使用插件来保存CakePHP 3中的文件:burzum/CakePHP -file-storage,一切都很完美但是现在我需要改变文件被动态保存的目录(通过目录)文件是通过参数保存的,例如),我该怎么做?
实际路径:
(根)'[浏览器名称]' tmp [FileExtension.png]
可以保持如下结构,例如:
PHP代码:(根)产品' [AppName-Images] ' [FileExtension.png]
public function saveFileLFS($stringSeparator, $storeName, $productName)
{
$key = $storeName . $stringSeparator . $productName . $stringSeparator .
$this->request->data['Media']['file']['name'];
if(StorageManager::adapter('Local')->write($key,
file_get_contents($this->request->data['Media']['file']['tmp_name']))){
return true;
}else
{
return false;
}
}
Github链接
它最终出现在TMP
的原因是这是插件自带的默认配置。它转到TMP
,因为除了日志之外,这是唯一一个在适当的应用程序设置中应该可写的地方,并且插件应该开箱工作。也许我会在未来的版本(4.0)中更改它,以便您必须配置它才能使用它,以使人们意识到它。
对于本地适配器,可以这样修改:
StorageManager::config('Local', [
'adapterOptions' => [ROOT . DS . 'file_storage' . DS], // Your base path here
'adapterClass' => ''Gaufrette'Adapter'Local',
'class' => ''Gaufrette'Filesystem'
]);
这将覆盖默认值。实际上,这里已经记录和解释过了。
我建议您看一下1.1.0分支(当前版本是1.1.0- rc1)。有些人已经在使用它了,我很高兴得到关于它的反馈。路径和文件名的整个生成方式已经被完全重写,并抽象成一组叫做"路径构建器"的类。