DeDeBIZ程序开发实现API接口调用织梦会员头像

snh102 By snh102 at 2025-01-19 • 暂不可见      举报

在DeDeBIZ、DeDeCMS、织梦BIZ、织梦CMS中,能实现API接口调用会员头像。

在织梦首页、列表页、内容页、标签页、搜索页、乃至整个织梦模板中,都能使用标签调用会员头像。为此,我想到了,使用API接口的方式,像QQ号能调用QQ头像那样的接口。

好了,你想实现吗,直接看展示效果吧。

调用标签

/user/image.php?ui=admin
/user/image.php?ui=admin&nk=100
/user/image.php?ui=admin&ng=200
/user/image.php?ui=admin&nk=300&ng=300

注意:支持4种调用方式,你喜欢哪种,那就用哪种。

标签说明

?ui=admin 默认图片大小
?ui=admin&nk=100 等比例,图片宽100px、图片高100px
?ui=admin&ng=200 等比例,图片宽200px、图片高200px
?ui=admin&nk=300&ng=300 指定宽高,图片宽300px、图片高300px

注意:参数值,不是固定的。比如,你可以任意指定图片宽高。

参数说明

ui 登录名,必须写,不然找不到用户
nk 图片宽,非必须,只设置宽,不设置高,就是图片等比例输出。
ng 图片高,非必须,设置宽,设置高,那就是固定图片大小输出。

注意:不设置图片宽,不设置图片高,就是默认的图片大小输出。

教程开始

在 DeDeBIZ 中使用:在 user 目录下,新建一个 image.php 文件,代码如下

<?php
/**
 * @version        $id:image.php 8:38 2024年8月6日 NiDeCMS $
 * @package        NiDeCMS.User
 * @copyright      Copyright (c) 2024 DedeBIZ.COM
 * @license        GNU GPL v2 http://nidecms.com/home
 * @link           http://nidecms.com/
 */
error_reporting(0);
$userid = isset($_REQUEST['ui']) ? $_REQUEST['ui'] : '';//登录名
$widtnk = isset($_REQUEST['nk']) ? $_REQUEST['nk'] : '';//图片宽
$heigng = isset($_REQUEST['ng']) ? $_REQUEST['ng'] : '';//图片高
if (empty($userid)){
	exit('参数不存在!');
}
require_once(dirname(__FILE__).'/../system/common.inc.php');
//织梦二次开发获取会员头像
$row = $dsql->GetOne("SELECT face,sex,userid FROM `#@__member` WHERE userid = '{$userid}'");
if ($row['userid'] == ''){
	exit('用户不存在!');
}
if ($row['face'] == ''){
	if ($row['sex']=="男"){
		$facea = '/ueditor/asking/img/dfboy.png';
	} elseif ($row['sex']=="女"){
		$facea = '/ueditor/asking/img/dfgirl.png';
	} else {
		$facea = '/ueditor/asking/img/face.png';
	}
} else {
	$facea = str_replace($GLOBALS['cfg_basehost'],'/', $row['face']);
}

$imagePath = dirname(__FILE__).'/..'.str_replace('//','/', $facea);

// 检查文件是否存在
if (!file_exists($imagePath)) {
    exit('图片文件不存在');
}

if ($widtnk == '' && $heigng == ''){
	header('Content-Type: image/jpeg');
	$fp = fopen($imagePath,'rb');
	fpassthru($fp);
	exit();
}

// 尝试根据文件扩展名创建图像资源
$imageInfo = getimagesize($imagePath);
$imageType = $imageInfo[2]; // 2 是索引,用于获取图片类型

switch ($imageType) {
    case IMAGETYPE_GIF:
        $image = imagecreatefromgif($imagePath);
        break;
    case IMAGETYPE_JPEG:
        $image = imagecreatefromjpeg($imagePath);
        break;
    case IMAGETYPE_PNG:
        $image = imagecreatefrompng($imagePath);
        break;
    default:
        break;
}

// 设置新的宽度和高度
if($widtnk == ''){
	$newWidth = $heigng;
	$newHeight = $heigng;
} elseif ($heigng == ''){
	$newWidth = $widtnk;
	$newHeight = $widtnk;
} else {
	$newWidth = $widtnk;
	$newHeight = $heigng;
}

// 创建新的图像资源
$newImage = imagecreatetruecolor($newWidth, $newHeight);

// 复制并调整大小
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, imagesx($image), imagesy($image));

header('Content-Type: image/jpeg');

// 输出图像到浏览器
imagejpeg($newImage);

// 释放内存
imagedestroy($image);
imagedestroy($newImage);
?>

这个代码,是在 DeDeBIZ 中测试的。所以,在 DeDeBIZ 中直接使用,但是,在 DeDeCMS 中,只需要改两个地方而已。下面,是在 DeDeCMS 中使用的修改方法。

1、将上面的文件剪切到 member 目录。

2、改一句代码就行了,看到第 16 行

require_once(dirname(__FILE__).'/../system/common.inc.php');

改为

require_once(dirname(__FILE__).'/../include/common.inc.php');

这样就行了。

无需登录,使用接口的方式,优雅的接口,适合高配置、高需求、高追求的站长。

温馨提示

内容由用户共同创建和维护,并不代表织梦爱好者论坛立场!
建议您独自对内容进行评估,核实并咨询相关的专业人士!

DeDeBIZ程序开发实现API接口调用织梦会员头像DeDeBIZ程序开发实现API接口调用织梦会员头像DeDeBIZ程序开发实现API接口调用织梦会员头像DeDeBIZ程序开发实现API接口调用织梦会员头像DeDeBIZ程序开发实现API接口调用织梦会员头像+41  41 个回复 | 最后更新于 2025-01-19
该部分是隐藏区

登录后查看回复

该部分是隐藏区

登录后方可回帖

Loading...