上传文件到日期文件夹之前的自定义位置

时间:2014-12-01 11:13:15

标签: bolt-cms

我在Bolt 2.0中构建了一个带有图像字段的自定义内容类型。

    image:
        type: image

如果未指定文件夹,则上传的文件将转到以年 - 月

命名的文件夹

结果:2014-11 / myFileName.jpg

通过标签上传,我可以将其更改为其他内容。

    image:
        type: image
        upload: "News/" 

结果:News / myFileName.jpg

是否可以在我的costom路径后获取年月文件夹?

结果:新闻/ 2014-11 / myFileName.jpg

2 个答案:

答案 0 :(得分:1)

答案是肯定的,但不是很简单,所以如果你想要一种可配置的方法来做到这一点,你需要等待Bolt的2.1,我们要在upload:设置中添加变量。 / p>

如果您不介意设置自己的引导文件并修改应用程序,那么您现在就可以这样做。

日期前缀由$ app ['upload.prefix']设置生成,并且当前返回日期字符串。您需要做的是修改它,将其更改为您自己的闭包。我没有在一个项目上测试过这个,所以如果需要的话可以调整,但之后:

$app->initialize();

// Redefine the closure
$app['upload.prefix'] = function() {
    $setting = $app['request']->get('handler');
    $parts = explode('://', $setting);
    $prefix = rtrim($parts[0], '/') . '/';
    return $prefix.date('Y-m') . '/';

};
$app->run();

我们在这里做的是读取请求中传递的设置,然后将默认日期前缀连接到它的末尾。

如前所述,2.1会看到引入路径的变量支持,所以像

这样的选项
 upload: news/{%month%}/{%day%}
 upload: uploads/{%contenttype%}/{%id%}

可以在contenttypes.yml文件中轻松定义,所以如果你不介意等待几个月,那么这显然要简单得多。

答案 1 :(得分:0)

从3.2.9开始,这个{%id%}原则似乎还不起作用...... :(