编程语言
首页 > 编程语言> > 更改burzum / cakephp-file-storage插件中的保存文件夹

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

作者:互联网

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

实际路径:

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

例如,它可能保留以下结构:

[htdocs]\[AppName-Images]\Products[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

解决方法:

它最终出现在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”的类.

标签:cakephp,cakephp-3-0,php
来源: https://codeday.me/bug/20191119/2039656.html