我正在使用插件保存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;
}
}
答案 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”的类。