织梦调用文件保存目录如何设置?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 织梦建站 正文
  1. 媒体管理器(默认上传目录):这是你在后台编辑文章、产品等内容时,点击“插入/修改图片”、“文件”等按钮,弹出窗口后上传文件默认保存的路径。
  2. 附件保存目录:这是指文章或产品内容中通过 {dede:field name='body'/} 等标签调用出来的,被系统识别为“附件”的文件(如 .doc, .pdf, .zip 等)的实际存放路径。

下面我将分别对这两个方面进行说明。

织梦调用 文件保存目录
(图片来源网络,侵删)

媒体管理器(默认上传目录)的设置与调用

这个目录主要用于存放你在后台编辑器中直接上传的图片、Flash、视频等多媒体文件。

如何设置上传目录?

这个设置通常在系统后台的“系统” -> “系统基本参数”中。

  • 路径:登录织梦后台 -> 系统 -> 系统基本参数 -> 核心设置

  • 找到参数:在“核心设置”页面中,找到以下两个关键选项:

    织梦调用 文件保存目录
    (图片来源网络,侵删)
    • 媒体文档默认保存目录:这个是针对图片、Flash等多媒体文件的。
    • 附件默认保存目录:这个是针对文档、压缩包等附件文件的。注意:这个设置有时可能不生效,附件的实际路径可能由下面提到的“附件保存路径”决定。
  • 设置规则

    • 你可以设置一个相对路径,../uploads/allimg/
    • 也可以设置一个绝对路径,/data/uploads/allimg/
    • 推荐做法:使用相对路径,并使用系统变量,如 {dede:cfg_cmspath}/uploads/,这样即使你更换了网站目录,也不会出错。

如何调用上传的文件?

当你通过媒体管理器上传了文件后,织梦会自动生成一个完整的URL。

  • :你直接在编辑器里插入的图片,其路径已经是完整的URL,无需额外调用。
  • 在模板文件中:如果你想在模板里获取某个特定上传的文件(调用文章的第一张图片),你需要使用特定的标签,但这通常不是直接调用“上传目录”,而是调用文章内容里的图片。

示例:调用文章中的第一张图片

这是最常见的需求,你可以使用 {dede:field name='body'/} 配合正则表达式来实现。

织梦调用 文件保存目录
(图片来源网络,侵删)
{dede:field.body runphp='yes'}
    $str = @me;
    $preg = "/<img.*?src=['|"](.*?)['|"].*?[/]?>/ism";
    preg_match_all($preg, $str, $match);
    @me = $match[1][0]; // 获取第一张图片的src
{/dede:field.body}

注意:这个方法获取的是文章内容里 <img> 标签的 src 属性值,它本身就是一个完整的URL,而不是“目录”。


附件保存目录的设置与调用

这个目录专门用于存放文章的附件,如 .doc, .pdf, .zip, .rar 等。

如何设置附件目录?

附件目录的设置比媒体管理器更灵活,可以在多个地方配置。

  • 在“系统基本参数”中设置

    • 路径:系统 -> 系统基本参数 -> 核心设置
    • 找到参数附件保存路径
    • 默认值../uploads/
    • 说明:这个设置定义了所有附件的根目录,你设置为 ../uploads/,那么一个附件的最终路径可能是 ../uploads/202505/10/xxx.doc
  • 在“附件管理”中设置(更常用)

    • 路径:核心 -> 附件管理 -> 附件设置
    • 在这里你可以找到更详细的设置,包括:
      • 附件目录命名规则Ym (年月) 或 Ymd (年月日),这会自动在根目录下创建子文件夹,避免文件过多。
      • 附件保存路径:这里可以覆盖“系统基本参数”中的设置,通常更优先。

如何调用附件?

调用附件需要使用专门的标签,而不是直接调用目录。

  • {dede:field name='fileurl'/}
  • 作用:这个标签会直接获取当前文章(或产品)的附件URL。
  • 使用场景:通常用在文章列表页或内容页,为下载链接提供地址。

示例1:在文章内容页显示下载链接

article_article.htm 模板文件中:

{dede:field name='body'/}
<div class="download-area">
    {dede:field name='fileurl'/}
    {if field name='fileurl' is='notempty'}
        <a href="{dede:field name='fileurl'/}" class="download-btn" target="_blank">
            下载附件:{dede:field name='filename'/}
        </a>
    {/if}
</div>

说明

  • {dede:field name='fileurl'/}:获取附件的完整下载地址。
  • {dede:field name='filename'/}:获取附件的原始文件名。
  • {if field name='fileurl' is='notempty'}...{/if}:判断文章是否有附件,如果没有则不显示下载链接,避免出现空链接。

示例2:在列表页调用附件

在列表页模板(如 list_article.htm)中,如果想在列表项里显示附件信息,可以使用 array 函数。

{dede:list pagesize='10'}
    <li>
        <a href="[field:arcurl/]">[field:title/]</a>
        {dede:field name='fileurl' runphp='yes'}
            if(@me != ''){
                @me = " <span class='has-attachment'>[附件]</span>";
            } else {
                @me = '';
            }
        {/dede:field}
    </li>
{/dede:list}

这段代码的意思是:如果文章有附件(fileurl不为空),就在标题后面显示一个“[附件]”的标记。


自定义目录与调用(高级用法)

有时候你可能想为不同的栏目或不同类型的文件设置不同的目录。

在后台手动指定上传目录

在发布或编辑文章时,当你点击“上传附件”按钮,在弹出的上传窗口中,通常会有一个“选择保存目录”的选项,你可以在这里手动选择或输入一个目录来覆盖默认设置。

通过修改代码实现(不推荐新手)

如果你想实现更复杂的逻辑,比如根据栏目ID自动创建目录,就需要修改织梦的源代码,例如修改 include/helpers/upload.helper.php 文件,这需要对织梦的底层架构有深入了解,且升级版本后代码可能会被覆盖,因此强烈建议只在必要时,并且对代码有充分理解后再进行修改

功能 设置位置 调用方法 说明
媒体/图片上传目录 系统 -> 系统基本参数 -> 核心设置 (媒体文档默认保存目录) 在编辑器中直接插入,无需调用,模板中需用正则从内容中提取。 控制后台编辑器里默认的上传位置。
附件上传目录 系统 -> 系统基本参数 -> 核心设置 (附件保存路径)
核心 -> 附件管理 -> 附件设置
{dede:field name='fileurl'/} 控制文章附件(如doc, pdf)的存放位置,并通过专用标签调用。
自定义目录 发布文章时,在上传窗口中选择。 无需特殊调用,按常规方式插入即可。 灵活地为单篇文章指定上传位置。

希望这个详细的解释能帮助你完全理解织梦的文件保存目录功能!

-- 展开阅读全文 --
头像
Horspool算法C语言实现步骤是怎样的?
« 上一篇 02-08
dede自定义表单如何实现短信验证?
下一篇 » 02-08

相关文章

取消
微信二维码
支付宝二维码

目录[+]