更改burzum / cakephp-file-storage插件

时间:2015-08-11 12:14:37

标签: php cakephp cakephp-3.0

我正在使用插件保存CakePHP 3中的文件: burzum / cakephp-file-storage , 一切都很完美 但现在我需要更改动态保存文件的目录(通过目录所在的位置) 该文件由参数保存,例如),我该怎么办?

路径实际:

  

[htdocs] \ [AppName] \ tmp [FileExtension.png]

例如,可能会使用以下结构:

  

[htdocs中] \ [AppName的图像] \产品[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 Link

1 个答案:

答案 0 :(得分:3)

它在TMP中结束的原因是这是插件附带的默认配置。它转到TMP,因为除了日志之外,这是唯一一个应该在适当的应用程序设置中可写的地方,并且该插件应该开箱即用。也许我会在将来的版本(4.0)中对此进行更改,以便您必须对其进行配置才能使用它,以便让人们了解它。

对于本地适配器,请更改为:

StorageManager::config('Local', [
    'adapterOptions' => [ROOT . DS . 'file_storage' . DS], // Your base path here
    'adapterClass' => '\Gaufrette\Adapter\Local',
    'class' => '\Gaufrette\Filesystem'
]);

这将覆盖默认值。 Actually this is already documented and explained here.

我建议你看看1.1.0 branch(目前版本是1.1.0-RC1)。有些人已经使用它,我很高兴收到有关它的反馈。生成路径和文件名的方式已经完全重写并抽象为一组名为“path builders”的类。