1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

ee上传文件自动重命名代码修改

本帖由 kernel2006-12-23 发布。版面名称:源码讨论

  1. kernel

    kernel New Member

    注册:
    2005-11-14
    帖子:
    45
    赞:
    0
    打开
    system/cp/cp.publish.php

    找(只有一处)

    $UP->set_max_width($query->row['max_width']);
    $UP->set_max_height($query->row['max_height']);
    $UP->set_max_filesize($query->row['max_size']);
    $UP->set_allowed_types(($SESS->userdata['group_id'] == 1) ? 'all' : $query->row['allowed_types']);

    if ( ! $UP->upload_file())
    {
    return $UP->show_error();
    }

    global $UL; $UL = $UP;

    if ($UL->file_exists == TRUE)
    {
    return $this->file_exists_warning();
    }

    后面加

    $UP->new_name = time().'.'.trim(substr(strrchr($UP->file_name, '.'), 1));

    if(rename($UP->upload_path.$UP->file_name, $UP->upload_path.$UP->new_name))
    {
    $UP->file_name = $UP->new_name;
    }

    =====================
    说明: 这个改动也可以通过extensions实现 但是官方在这块没提供hook,可以自己加个自定义hook,同样要改这个地方的代码还要数据库多插条记录。。所以就直接改了。。这个改动没什么后遗症,只是帮自动命名一下,不用时直接覆盖回原文件。
    $UP->new_name = time() 是按上传时间重命名 精确到秒 只考虑到少数人使用情况 多人可能重名 请加随机数。。

    另外:上传表单上还可以加上 自动重命名(可选)的选项 大概可以通过官方的upload_form的hook实现extension 应该不难 需要的自己改把。。
     
  2. DKEN

    DKEN Well-Known Member

    注册:
    2006-08-07
    帖子:
    3,358
    赞:
    33
    :heart: 支持...谢谢
     
  3. 禾火木风

    禾火木风 New Member

    注册:
    2006-03-15
    帖子:
    2,212
    赞:
    8
  4. Binning

    Binning New Member

    注册:
    2006-03-22
    帖子:
    154
    赞:
    0
    没明白。纯支持下!