在使用Dedecms CMS模板时,图集上传图片默认需要手动填写注释。然而,有时我们已经准备好产品图和图片名称,为了提高效率,希望上传图片后能够自动获取图片名作为注释。以下是一个详细的教程,帮助您实现这一功能。
### 第一步:修改 swfupload.php 文件 打开 `\\dede\\swfupload.php` 文件(注意:`dede` 是默认后台目录,请根据您的实际后台路径进行调整)。找到以下代码:

echo "FILEID:" . $_SESSION['fileid'];
    
在其上方添加以下代码:

$file_snames = explode('.', $Filename);
$file_filename = $file_snames[count($file_snames) - 2];
$_SESSION['file_filename'][$_SESSION['fileid']] = $file_filename;
    
继续查找以下代码块:

/************************
// 删除指定ID的图片
************************/
    
在其上方插入以下代码:

/************************
// 生成注释
function GetThumbnail() { }
*************************/
else if ($dopost == 'thumbalt') {
    if (empty($id)) {
        header('HTTP/1.1 500 Internal Server Error');
        echo 'No ID';
        exit(0);
    }
    if (!is_array($_SESSION['file_filename']) || !isset($_SESSION['file_filename'][$id])) {
        header('HTTP/1.1 404 Not found');
        exit(0);
    }
    if ($cfg_soft_lang == 'utf-8') {
        $file_filename = $_SESSION['file_filename'][$id];
    } else {
        $file_filename = iconv('UTF-8', 'gb2312//IGNORE', $_SESSION['file_filename'][$id]);
    }
    echo $file_filename;
    exit(0);
}
    

### 第二步:修改 album_add.php 文件 打开 `\\dede\\album_add.php` 文件,找到以下代码:

$imginfo = !empty(${ 'picinfook' . $k }) ? ${ 'picinfook' . $k } : '';
    
将其替换为:

$imginfo = !empty(${ 'picinfook' . $k }) ? ${ 'picinfook' . $k } : $_SESSION['file_filename'][$k];
    

### 第三步:修改 album_edit.php 文件 打开 `\\dede\\album_edit.php` 文件,同样找到以下代码:

$imginfo = !empty(${ 'picinfook' . $k }) ? ${ 'picinfook' . $k } : '';
    
将其替换为:

$imginfo = !empty(${ 'picinfook' . $k }) ? ${ 'picinfook' . $k } : $_SESSION['file_filename'][$k];
    

### 第四步:修改 handlers.js 文件 最后,打开 `\\dede\\js\\handlers.js` 文件,找到以下代码:

newImgDiv.innerHTML += '
注释:
';
将其替换为:

newImgDiv.innerHTML += '
注释:
'; var picinfo = document.getElementById('picinfo' + albImg); var picinput = document.getElementById('picinput' + albImg); var myajax = new DedeAjax(picinfo, false, false, "", "", ""); myajax.SendGet2('swfupload.php?dopost=thumbalt&id=' + pid); picinput.value = picinfo.innerHTML; DedeXHTTP = null;

通过以上步骤,您可以成功实现 Dedecms 图集上传图片后自动获取图片名作为注释的功能。这种方法不仅提高了工作效率,还减少了手动输入的错误率。希望这篇教程对您有所帮助!