更改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”的类.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...