【发布时间】:2018-01-22 11:49:38
【问题描述】:
如果为 cs-cart 模块创建 addon.xml 文件并指定带有 type=file 的选项,就像这样
<?xml version="1.0"?>
<addon scheme="3.0">
<id>my_addon</id>
<version>1.0</version>
<priority>4000</priority>
<status>active</status>
<auto_install>ULTIMATE,MULTIVENDOR</auto_install>
<default_language>en</default_language>
<dependencies/>
<settings edition_type="ROOT,ULT:VENDOR">
<sections>
<section id="general">
<items>
<item id="attach_file">
<type>file</type>
</item>
</items>
</section>
</sections>
</settings>
</addon>
一切都在客户端完美运行:文件管理器通过单击“浏览...”按钮打开,用户可以上传和选择文件。但是当文件管理器中的文件被选中时,只有它的结束文件名被粘贴到模块设置表单字段中,所以它不存储上传的文件位置/路径。只有它的文件名。我试过使用
Registry::get('config.dir.files').Registry::get('addons.my_addon.attach_file');
获取完整的上传文件路径,但无法正常工作。它返回类似/path/to/site/root/var/files/my-file.pdf 的东西,而不是真正的/path/to/site/root/var/files/1/my-file.pdf(在文件名之前有一个额外的1 目录,我不知道如何表示它)。如果手动添加额外的1,那么它可能无法在不同的 CS-Cart 配置上运行。
那么,如何在管理面板的模块设置弹出窗口中的文件管理器中获取完整的上传文件路径?
【问题讨论】: