如何修改Dede上传到服务器的默认路径?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 DEDE建站 正文
  1. 修改后台设置:这是最直接、最推荐的方法,可以在不修改代码的情况下完成路径的修改。
  2. 修改核心配置文件:如果后台设置无法满足需求(你希望所有新上传的附件都存放在一个固定的、不受后台设置影响的目录),则需要修改代码。

下面我将详细介绍这两种方法。

怎么修改dede上传到服务器上的默认路径
(图片来源网络,侵删)

通过后台系统设置修改(推荐)

这是最简单、最安全的方法,适用于大多数常规需求。

步骤 1:登录后台并进入系统设置

  1. 使用你的管理员账号登录 Dedecms 后台。
  2. 在左侧菜单栏中,找到并点击 “系统” -> “系统基本参数”

步骤 2:修改上传目录相关参数

在“系统基本参数”页面,切换到 “核心设置” 选项卡。

你会看到以下几个与上传路径相关的关键参数,你可以根据需要进行修改:

参数名称 参数值说明 修改建议
附件目录 默认值是 uploads,这是所有上传文件(如文章图片、软件、文档等)的根目录。 如果你希望所有附件都存放在 data 目录下,可以修改为 data/uploads
多媒体目录 默认值是 uploads,通常与附件目录相同,用于存放视频、音频等大文件。 可以保持与“附件目录”一致,或者单独设置,如 uploads/media
附件保存目录 默认值是 day,系统会在 附件目录 下按日期创建子目录来存放文件,以避免单个目录文件过多。 通常保持 day 即可,这样每天一个文件夹,便于管理,如果你想按月存放,可以修改为 month
远程站点附件目录 默认值是 uploads,当你开启了“远程附件”功能时,附件会保存在这个目录。 通常保持与“附件目录”一致即可。

修改示例:

怎么修改dede上传到服务器上的默认路径
(图片来源网络,侵删)

假设你希望所有附件都存放在 wwwroot/data/files 目录下,并且按日期存放。

  1. 附件目录:将 uploads 修改为 data/files
  2. 多媒体目录:同样修改为 data/files
  3. 附件保存目录:保持 day 不变。

修改完成后,务必点击页面底部的 “保存” 按钮。

步骤 3:验证修改

  1. 清空缓存:保存后,最好在后台的 “系统” -> “一键更新网站” 中,选择“更新缓存”并执行。
  2. 上传测试:去发布一篇新文章,上传一张图片,检查服务器上是否在 data/files/day/ 目录(或你设置的目录)下生成了对应的图片文件。

修改核心配置文件(进阶)

如果你发现后台设置修改后无效,或者有更复杂的自定义需求(不同栏目使用不同的上传路径),就需要直接修改代码文件。

修改默认上传目录

这个文件定义了附件上传的默认根目录。

怎么修改dede上传到服务器上的默认路径
(图片来源网络,侵删)
  • 文件路径/include/config_base.php
  • 查找代码
    // $cfg_upload_path = $cfg_basedir.$cfg_medias_dir;
    // $cfg_media_dir = '/uploads';
  • 修改方法: 你可以修改 $cfg_medias_dir 的值,如果你想默认上传到 data/myuploads 目录,可以这样修改:
    // $cfg_upload_path = $cfg_basedir.$cfg_medias_dir;
    $cfg_medias_dir = '/data/myuploads'; // 修改为你想要的目录

    注意:这里的路径是相对于网站根目录()的,请确保你设置的目录存在并且有正确的写入权限(通常是 755 或 777)。

修改按日期/按目录存放的规则

这个文件决定了文件上传后是存放在 day(按天)、month(按月)还是其他自定义目录。

  • 文件路径/include/dedecollection.class.php/include/ upload.class.php (不同版本可能略有不同,upload.class.php 更常见)

  • 查找代码: 在 upload.class.php 文件中,寻找类似 GetFilePath() 的函数,你会看到类似下面的逻辑:

    function GetFilePath($activepath = '')
    {
        $year = MyDate('Y', time());
        $month = MyDate('m', time());
        $day = MyDate('d', time());
        // 这里的 $mdir 变量决定了子目录的规则
        $mdir = $cfg_medias_dir.'/'.$year.'/'.$month.'/'.$day; // 默认是按年/月/日
        // 如果你想修改为按年/月,可以这样改:
        // $mdir = $cfg_medias_dir.'/'.$year.'/'.$month;
        // 或者如果你想修改为固定的 'all' 目录:
        // $mdir = $cfg_medias_dir.'/all';
        // ... 其他代码
    }
  • 修改方法: 修改 $mdir 的赋值逻辑,即可改变文件的存放规则,取消按天分类,统一存放在 uploads/all 目录下:

    function GetFilePath($activepath = '')
    {
        // ...
        // 修改为固定的 'all' 目录
        $mdir = $cfg_medias_dir . '/all';
        // ...
    }

修改缩略图保存路径

缩略图的保存路径通常和原图路径一致,但如果你想单独设置,可以修改以下文件:

  • 文件路径/include/dedecollection.class.php/include/ upload.class.php
  • 查找代码:寻找处理缩略图的函数,如 MakeThumb(),缩略图的路径通常也是通过 GetFilePath() 函数生成的,所以修改了上述规则,缩略图路径也会随之改变,如果需要独立配置,需要在该函数中单独处理。

重要注意事项

  1. 文件权限:无论你修改哪个目录,必须确保该目录在服务器上存在,Web 服务器(如 Apache、Nginx)对该目录有写入权限,通常设置目录权限为 755,文件权限为 644,如果需要,可以临时设置为 777 进行测试,但为了安全,测试完毕后应改回 755
  2. 备份:在修改任何核心文件(如 config_base.php)之前,务必备份原文件,以防修改出错导致网站无法正常运行。
  3. 缓存问题:修改后台设置后,记得清空缓存,直接修改代码文件后,也需要清空缓存才能生效。
  4. 现有数据:这些修改只对之后新上传的文件生效,不会改变已经存在的文件路径,如果你需要移动历史文件,需要手动操作。
需求场景 推荐方法 优点 缺点
常规需求,改变所有附件的根目录 后台设置 简单、安全、无需代码知识 功能相对固定
需要更复杂的目录规则(如按年/月) 方法一+方法二结合 后台设置根目录,代码规则 需要修改代码
不同栏目不同上传路径 修改代码 灵活性极高 复杂,需要编程知识,容易出错

对于绝大多数用户来说,方法一已经足够解决问题,只有在遇到特殊情况时,才需要考虑方法二

-- 展开阅读全文 --
头像
51单片机C与汇编程序设计如何实用?
« 上一篇 11-29
织梦后台模板超精美,如何获取或使用?
下一篇 » 11-29

相关文章

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

目录[+]