更改burzum/cakephp-file-storage插件中的保存文件夹


Change save folder in burzum/cakephp-file-storage plugin

我使用插件来保存CakePHP 3中的文件:burzum/CakePHP -file-storage,一切都很完美但是现在我需要改变文件被动态保存的目录(通过目录)文件是通过参数保存的,例如),我该怎么做?

实际路径:

(根)'[浏览器名称]' tmp [FileExtension.png]

可以保持如下结构,例如:

(根)产品' [AppName-Images] ' [FileExtension.png]

PHP代码:
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)。有些人已经在使用它了,我很高兴得到关于它的反馈。路径和文件名的整个生成方式已经被完全重写,并抽象成一组叫做"路径构建器"的类。