首页
归档
Github
留言
工具箱
邻居
壁纸
更多
音乐
直播
视频
Search
1
欢迎访问我的日志空间
76,419 阅读
2
Typecho - Joe主题魔改版(持续更新)
8,340 阅读
3
Typecho-Joe主题实现图片评论功能
7,028 阅读
4
WEB音乐播放器源码
6,209 阅读
5
Git上传项目到Github仓库教程
5,303 阅读
学习笔记
源码库
BUG
第九艺术
登录
/
注册
Search
标签搜索
学习笔记
C语言
typecho
Java
扫雷
源码
PHP
插件
网站源码
音乐播放器
模板
git
github
bug
QQBot
AI
机器人
框架
Nekro Agent
XG.孤梦
累计撰写
53
篇文章
累计收到
200
条评论
首页
栏目
学习笔记
源码库
BUG
第九艺术
页面
归档
Github
留言
工具箱
邻居
壁纸
音乐
直播
视频
搜索到
53
篇与
XG.孤梦
的结果
2025-07-26
NekroAgent - 一体式跨平台多人AI智能聊天机器人框架
前言在ChatGPT火起来的时候,我就在思考能不能让之前只知道按照已经编写好词库机械回复的QQBOT用上ChatGPT呢,于是我就在GitHub上寻找了起来,当时比较出色的使用人数多的框架就属nonebot了,这是一个基于 OneBot 标准(原来使用 CQHTTP协议) 的 Python 异步 QQ 机器人框架,而且还有功能众多的插件库,当时部署起来环境搭建也是很麻烦的,在插件库里我找到了几个支持接入ChatGPT的插件,于是我将他们下载安装上了,这中间还踩了很多坑,我个人推荐还是用linux系统搭建方便稳定。在一一体验过后,我选出一个我自己认为比较满意的插件那就是 【更人性化的GPT-Ai聊天插件】,确实如名字所说的,在使用体验时更人性化,而这个插件就是我今天要介绍的NekroAgent框架(NA)的前身,简称NG。下面我就带大家了解一下这个人性化的AI智能聊天机器人框架吧。介绍NekroAgent起源正如前文所说的NA之前只是一个QQBot的插件,但是插件作者KroMiose认为NG的还不够人性化,随着版本一步一步的更新迭代,慢慢发现NG的屎山代码太多了,导致在添加新功能时遇到了阻碍,这也是很多程序员都遇到的问题,要么不动底层继续堆屎,要么就推倒重来,KroMiose选择了后者,于是重构后NekroAgent诞生了,并且独立出之前的OneBot框架,构建起了自己的框架,这也是让NA得以增加更多强大的功能。NekroAgent 核心能力NekroAgent 是通过强大灵活的提示词构建系统,引导 AI 生成准确的代码并在沙盒中执行,通过 RPC 通信来与真实环境交互,有着可视化的WebUI后台可以轻松查看修改参数、装配插件。Nekro Agent 的核心是面向 输入/输出流 设计的。适配器(Adapter)作为连接外部平台的桥梁,仅需实现对具体平台消息的接收(输入流)和发送(输出流)。所有复杂的业务逻辑,如会话管理、插件执行、沙盒调用等,都由 Nekro Agent 的核心引擎自动接管和处理。这种设计确保了极高的扩展性和维护性,让开发者可以专注于实现适配器本身的功能,而无需关心核心的复杂实现。支持多操作系统部署如Linux,Windows,MacOS。核心执行与扩展能力:代码生成与安全沙盒:引导 AI 生成代码并在安全的容器化环境中执行,实现复杂任务与方法级扩展性的坚固基石!高度可扩展的插件系统:提供多种关键节点回调、提示词注入、自定义沙盒方法,从小型工具扩展到大型系统优雅集成的超智能中枢解决方案。原生多人场景互动:高效洞悉群聊场景需求,在复杂的多人对话中保持交互能力。极致的降本增效:拒绝无效提示词与滥用迭代智能体,聚焦解决问题的逻辑根本。自动纠错与反馈:深耕提示词纠错与反馈机制,打破困于错误与重复的循环。连接与交互:多平台适配器架构:原生支持 OneBot v11, Minecraft, B站直播,Discord 等多种聊天平台,提供统一的开发接口。原生多模态视觉理解:可处理图片、文件等多种资源,与用户进行多模态交互。基于事件驱动的异步架构:遵循异步优先的高效响应机制。生态与易用性:云端资源共享:包括插件、人设等,拥有强大友好的社区驱动能力。功能齐全的可视化界面:提供强大的应用管理与监控面板。项目源码感兴趣的朋友可以前往查看了解,推荐使用Linux系统搭建,最好安装一个Linux面板比如1Panle或者宝塔,有一键式安装脚本,小白也能轻松部署。官网地址:https://nekro.ai/products/nekro-agent文档站:https://doc.nekro.ai/docs/01_intro/overview.htmlgithub仓库地址:https://github.com/KroMiose/nekro-agent
2025年07月26日
264 阅读
0 评论
1 点赞
2025-06-05
字由客户端激活的字体提取方法
前言最近有对文本美化有需求,然后系统自带的字体不够理想于是就找到了一个字体软件【字由】,但是使用后发现关闭字由客户端后,设定的字体就消失了。不支持下载有个很严重的问题,比如进行web开发几乎就没法用,因为必须要根据页面上应用到的汉字制作精简版字体才能保证用户加载不超出浏览器内存限制。官方解释是:由于字体保存在字由云端,所以请保持字由在线使用。懂程序的小伙伴应该都知道win系统字体安装肯定是要缓存字体文件到本地,然后临时加载字体,所以本地肯定是有字体的源文件的,然后我就开始在网上查找攻略,发现方法大部分都失效了,经过仔细分析终于找到了字体文件。查找过程 第一个方法(经过测试无效) 一、打开字由客户端,选择自己喜欢的字体激活。二、进入C:Users用户名AppDataRoamingSystemDataTemp 这个目录。(文件夹没有这个目录)三、.按类型排序,我们会看到许多类似 0c42ff0cdbe7b418bf81a3ca13e03dcb 这样没有后缀的文件,这就是字体文件的本地缓存。四、在文件名末尾加上ttf后缀【可以批量重命名】,然后右击预览,根据预览中显示的信息更改文件名。五、右击,安装字体。第二个方法(经过测试还没有和谐,不过需要多个步骤)一、打开字由客户端,选择自己喜欢的字体激活。二、打开文件夹进入C:Users用户名AppDataRoaminghellofontCoreSyncpluginslivetyper 这个目录。当我在文件夹导航栏输入这个地址发现没有这个目录,然后查找上一层发现是空的文件夹难道又失效了吗?,我在目录附近查找了一番,一无所获,然后回到了这个目录,难道是隐藏起来了我立即右键查看文件夹的大小果然是隐藏起来了这里用的并不是普通的隐藏项目(在文件夹菜单栏勾选查看隐藏的项目是无效的)而是将字体文件设置成了受保护的操作系统文件,显示方法:第一种1.使用Windows + R快捷键打开「运行」对话框,执行control folders命令打开「文件资源管理器选项」2.切换到「查看」菜单,在「高级设置」中:取消勾选「隐藏受保护的操作系统文件(推荐)」选择「显示隐藏的文件、文件夹和驱动器」。点击应用第二种1.在要显示隐藏文件夹的目录下,创建一个新的文本文档。2.在文档中输入以下代码:attrib -h -r -s /s /d,作用是将清除文件夹的所有隐藏属性。3.保存并关闭文本文档后,选中刚刚的[新建文本文档.txt]将.txt后缀重命名为.bat。若看不到.txt和.bat这些后缀,需先在文件夹查看菜单勾选上文件扩展名。4.然后双击运行[新建文本文档.bat]批处理文件,文件夹应该就会显示出来。三.这时候回到之前的目录我们就能可见r文件夹打开里面我们会看到许多类似 99606-20250603142220000 这样没有后缀的系统文件,这就是字体文件的本地缓存。四、在文件名末尾加上ttf后缀【可以批量重命名】,然后双击或者在查看菜单打开预览,根据预览中显示的信息更改文件名。五、然后就可以正真的【“字”由】安装字体。教程结束,仅供思路参考,不对原本软件客户端造成任何破解及入侵,注意私自倒卖字体文件,属于违法行为请勿倒卖获取到的字体,如有侵权,请联系博主删除。
2025年06月05日
506 阅读
1 评论
6 点赞
2023-06-12
制作可变logo教程
前言使用joe主题的人应该都知道主题logo会随主题的明暗模式进行变换,那么这个是怎么实现的呢?其实这个有两种方法。替换文件法这个方法通常运用在图片(位图图像)通过在明暗模式切换的js代码中添加logo的文件路径替换,达到两张图片的切换效果。矢量图编辑法有学习过设计美术方面的或者使用过 Adobe Illustrator、Corel Draw 的人,应该都知道矢量图,有一个非常好的特性就是图像可以无限级缩放,对图形进行缩放,旋转或变形操作时,图形不会产生锯齿效果,而位图缩放和旋转容易失真,这个是这么实现的呢,其实你可以下载一个纯矢量图文件 文件格式通常以 .svg 结尾 ,右键以文本编辑器或者记事本方式打开然后,你就会看见一大段类似坐标点一样的代码(数学向量),就是因为这些坐标一样的数学向量组成了一张图像,所以矢量图可以使用css或者js对其就行编辑,从而达到图像变换的效果。位图与矢量图比较图像类型组成优点缺点常用制作工具点阵图像(位图)像素只要有足够多的不同色彩的像素,就可以制作出色彩丰富的图象,逼真地表现自然界的景象缩放和旋转容易失真,同时文件容量较大Photo Shop、画图等矢量图像数学向量文件容量较小,在进行放大、缩小或旋转等操作时图象不会失真不易制作色彩变化太多的图象AdobeIllustrator、Flash、CorelDraw等两种方法根据自己需要与实际需求自行选择教程开始方法一准备两张不同效果的logo图片(最好是透明镂空效果最佳)制作或者修改图片软件推荐使用 Photo Shop制作图片使用PS打开需要编辑的图片,根据自己需求设计,关于PS(Photo Shop)教程可自行去B站搜索相关教程这里就不过多赘述,就教一个简单的图片镂空,关于镂空不懂PS的小白可以使用AI自动抠图将图片镂空,当然效果可能不是很理想。一、 编辑图片用PS(Photo Shop)打开图片,这里拿老米的logo举例(如有侵权联系进行删除)在左边工具栏选择魔棒工具,然后点击logo图片的白色区域,如果图片背景比较复杂可以修改上面菜单栏的容差与勾选上连续一点一点选取。选取后点击删除键即可删除白色背景然后保存为以 .png 结尾的图片文件格式图片就制作到这里,然后上传图片到服务器文件夹里二、代码部分明暗模式的js代码在主题文件夹的 /assets/js/joe.config.js 文件夹里logo的代码在主题文件目录下的 /public/header.php 文件里使用合适的js替换代码将logo的图片地址替换即可,方法很多比如最常见的获取img图片对象的id,然后使用setAttribute()方法重新设置该id对象的src属性的值即可例子 <!--图片代码 --> <img id="img" src="img/logo.png" width="50" height="50"/> <!--切换按钮代码 --> <button onclick="myFunction()">更改logo图片</button> <!--js代码 --> <script> function myFunction() { var img=document.getElementById("img"); img.setAttribute("src","img/4.jpg"); } </script>方法二准备一张logo图片(最好是透明镂空效果最佳)制作或者修改图片软件使用到 Photo Shop、Adobe Illustrator制作矢量图一、编辑图片第一步与方法一一致将图片镂空,背景纯色也是可以的,然后加图片填充为纯色方便AI临摹图像,然后将保存好的图片用AI(Adobe Illustrator)打开选中图片然后在上面菜单栏中选择对象-->栅格化 背景选择透明然后选择对象图像描摹-->建立并扩展这个时候我们就得到了绘制出来的图像了,如果图案复杂的可以使用钢笔工具自己照着图勾出图像然后填充图像颜色即可然后保存为 .svg 结尾的图片文件格式用记事本打开图片文件可以看见一大段文字内容.svg格式的文件可以直接在浏览器中渲染出来,所以可以直接将这段内容复制代码中使用然后再通过js替换颜色代码达到变换效果,厉害一点的大佬也可以制作出动画效果我的joe主题logo代码在主题文件目录下的 /public/header.php 文件里,可以直接替换代码或者在主题设置的logo设置里粘贴这段代码或者文件路径地址即可这里的 <g fill="var(--main)"> 就是图像的颜色,因为我的logo比较简单就使用的一个颜色,你也可以添加一些css与js代码来美化logo,相关代码可以通过VS Code打开主题文件夹搜索 var(--main) 进行参考,时间有限就写到这里了请各位小伙伴自行探索吧[line]教程结束[/line]
2023年06月12日
2,772 阅读
1 评论
7 点赞
2022-08-14
Tyepcho找回密码增加请求限制教程
前言之前有人请教我怎么限制typecho邮件通知里的找回密码请求,我看了看这好像是个挺严重的问题,如果没有限制请求频率,可能一些不怀好意的人会一直恶意请求,导致发送邮箱账号被封号,或者标记为垃圾邮箱,所以我研究了一会儿,想了比较多的方案,比如:前端js拦截(设置多少秒解除提交按键的禁用属性)但是因为typecho插件的性质组件初始化的顺序不同,可能js提前加载无法绑定到按钮,而且每次进入都禁用一些时间,非常影响体验,所以pass掉了。设置cookie临时存储提交的时间,找通过js拦截请求的发起,很明显这个实现比第一个体验上好了一点,但是这个办法有漏洞清除掉cookie就又可以请求,而且实现起来有点难度,因此也pass了。最后我想到了一个好办法,比上面两个实现起来容易且能稳定运行,通过查询数据库验证请求,我最后选择了这种方法,方法已经更新到了插件和我的定制版后台里,下载最新版本安装后,取消插件里XGComment/Action.php大概307-309行的代码注释即可开启功能,加注释防止有人安装到官方的Typecho,请求数据库查不到表单报错。教程1.打开数据库找了typecho_users表,点击结构添加一列名称rtime类型int长度 10允许为空 默认填充 0用来存储提交时写入数据库的时间戳。2.打开插件的 Plugin.php 文件在 找回密码过期时间 的下一行插入以下代码 // 找回密码请求间隔时间 $public_rtime = new Typecho_Widget_Helper_Form_Element_Text('public_rtime', NULL, '180', _t('请求间隔时间'), _t('防止恶意请求,开启需要定制版typecho且删除Action.php中相关的代码注释,此处定义找回密码请求间隔时间,单位为秒')); $form->addInput($public_rtime);3.打开插件的 Action.php 文件找到 doForget() 方法,这是验证并创建重置密码链接发送邮件的方法。只要在验证处添加一个时间戳验证,设置好时间间隔,这样每次点击提交找回密码请求后,方法就会查询数据库比较时间将 doForget() 方法的以下片段替换成下面的片段 // 查询用户数据 $user = $this->db->fetchRow($this->select()->where('mail = ?', $this->request->mail)); $now = time(); $retime = $user['rtime']; // 没有用户 if ( !$user ) { // 输出错误 $this->widget('Widget_Notice')->set(_t('邮箱地址错误, 请核对后重新输入'), 'error'); // 返回上一页 $this->response->goBack(); } if ( $now<=$retime ) { // 输出错误 $this->widget('Widget_Notice')->set(_t($this->request->mail.'您已申请过重置密码请求,请稍后重试!'), 'error'); // 返回上一页 $this->response->goBack(); } $addtime = $this->_plugin->public_rtime ? $this->_plugin->public_rtime : 180; $setime = $now + $addtime; $this->update(array('rtime' => $setime), $this->db->sql()->where('mail = ?', $this->request->mail));
2022年08月14日
2,776 阅读
0 评论
5 点赞
2022-08-12
CORS 跨域问题解决办法
我们在编写自己的网站时请求一些接口或者网页资源时,可能会遇到请求无响应的现象,这时按F12查看控制台会发现报出了下面这句错误,这其实就是跨域资源共享(CORS)协议阻止了请求。Access to XNLAttpRequest at 'https://xxx.xxxx.xxx' from origin 'https://xxx.xxx.xxx' has xxx.xx been blocked by coRs policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.跨域问题出现的原因:出于安全考虑,浏览器限制访问站点的资源。解决办法自己的网站或接口Nginx配置文件添加请求头修改Nginx后网站所有页面都允许跨域请求共享在Nginx配置文件末尾插入下面配置,保存并重载配置即可 # 允许跨域 location / { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization'; if ($request_method = 'OPTIONS') { return 204; } } [line]不想深入研究的,看到这里就可以啦 :%(doge)[/line]解析Access-Control-Allow-Origin 服务器默认是不被允许跨域的。加上 Access-Control-Allow-Origin * 后,服务器就会接受所有的请求源其中就包括了跨域的请求。Access-Control-Allow-Headers 为了防止出现: Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response. 错误。这个错误表示当前请求Content-Type的值不被支持。是发起"application/json"的类型请求导致的Access-Control-Allow-Methods 为了防止出现:Content-Type is not allowed by Access-Control-Allow-Headers in preflight response 错误。OPTIONS 添加返回204 为了处理在发送 POST 请求时请求时 Nginx 依然拒绝访问的错误,发送"预检请求"时,需要用到 OPTIONS 方法服务器需要允许该方法。PHP接口添加请求头在api.php页面的头部插入以下代码就可以,接口跨域共享,网站其他页面不会共享,如果想限制只允许自己调用接口,可以把 * 改成自己的域名要带上http或者https。<?php header('Content-Type:text/html;charset=utf-8'); header("Access-Control-Allow-Origin: *"); ?>他人网站Nignx代理请求假设请求的链接是这样的 http://xxxx.xxxx.xxx/abc/api?1234 。在Nginx里插入这样一条配置location /abc/ { proxy_pass http://xxxx.xxxx.xxx; }把文件里请求的链接改成 /abc/api?1234,这时服务请求的实际上是服务器本地的地址即 127.0.0.1:xxxx(端口)/abc/api?1234,然后就能访问了,原理是跨域问题是浏览器报错阻止了请求,骗过浏览器就能正常访问到。
2022年08月12日
4,575 阅读
0 评论
2 点赞
2022-08-10
Typecho-Joe主题实现图片评论功能
实现效果实际使用效果见本站,主题将在1.1.7版本中嵌入此功能,但是在开启前需要配置一些东西。使用我的主题模板搭建好图床直接把js里的图床API改成自己的就可以了效果图默认状态已选择文件点击插入 上传图片默认插入Markdown语法链接,目的方便实现评论点击图片大图预览效果开启判断文件类型在js中加入后缀判断文件类型,选择非图片类型时,会提示视频教程[hide][dplayer src="https://blog.xggm.top/video/m3u8/2022/08/28/8a1feb72/index.m3u8"/][/hide]准备修改后台设置1.首先进入Typecho后台,找到评论设置开启评论Markdown语法。2.只开启Markdown语法是不够的,因为评论区默认禁用HTML标签,所以要添加允许的HTML标签。 在评论设置的最下方找到允许使用的HTML标签和属性,插入以下代码。<img src="" data-original="" width=""> <a href="" data-fancybox="">如果还想在评论区播放视频,自行查看网站的video标签和属性值一同加入进去。注意因为解除了a标签后可以写入JS脚本语句,造成安全隐患,强烈建议开启主题设置里的禁止使用JS脚本评论。3.图床API接口,推荐自己搭建。 可以使用我源码库中的外链网盘源码搭建,我的博客使用的也是这个源码的API,为了减轻服务器负担我加了域名验证,我的接口只允许了本站,要是实在不会动手可以打赏,请我喝一杯奶茶,我开放你的域名授权,不过还是建议自己搭建,因为方便自己管理上传上来的文件。使用本主题1.1.7之后版本只需要在主题文件夹的根目录下的js文件夹里找到img.js,打开找到图床API把链接换成自己的接口链接就可以正常使用了。[line]准备阶段完成[/line]实现修改functions.php在合适位置插入以下代码,其他的joe主题自行修改 setAttribute(); 中加入的属性。 $JCommentImg = new Typecho_Widget_Helper_Form_Element_Select( 'JCommentImg', array('off' => '关闭(默认)', 'on' => '开启'), 'off', '是否开启评论图片功能', '介绍:开启后,评论区域可以选择图片进行评论' ); $JCommentImg->setAttribute('class', 'j-setting-content j-setting-other'); $form->addInput($JCommentImg->multiMode());修改评论区文件 comment.php找到评论区文件,我的主题是在主题文件根目录下的 pblic/comment.php插入以下代码到图片位置,或者合适位置。[hide]<?php if($this->options->JCommentImg !== "off") : ?> <span class="showFileName"></span> <a href="javascript:;" id="upload" class="file"> <svg t="1629804953737" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2082" width="24" height="24"><path d="M740.693333 750.933333h-102.4c-20.48 0-34.133333-13.653333-34.133333-34.133333s13.653333-34.133333 34.133333-34.133333h102.4c58.026667 0 102.4-44.373333 102.4-102.4 0-47.786667-34.133333-88.746667-78.506666-98.986667-17.066667-3.413333-27.306667-20.48-27.306667-37.546667 3.413333-13.653333 3.413333-23.893333 3.413333-34.133333 0-112.64-92.16-204.8-204.8-204.8-88.746667 0-170.666667 61.44-197.973333 146.773333 0 13.653333-13.653333 23.893333-27.306667 23.893334-81.92 3.413333-146.773333 71.68-146.773333 153.6 0 85.333333 68.266667 153.6 153.6 153.6h51.2c20.48 0 34.133333 13.653333 34.133333 34.133333s-13.653333 34.133333-34.133333 34.133333H314.026667c-122.88 0-221.866667-98.986667-221.866667-221.866666 0-112.64 81.92-204.8 191.146667-218.453334 40.96-102.4 143.36-174.08 252.586666-174.08 150.186667 0 273.066667 122.88 273.066667 273.066667v13.653333c61.44 27.306667 102.4 88.746667 102.4 157.013334 0 95.573333-75.093333 170.666667-170.666667 170.666666z m-204.8 102.4V477.866667c0-13.653333-6.826667-23.893333-20.48-30.72-10.24-6.826667-23.893333-3.413333-34.133333 3.413333l-136.533333 102.4c-13.653333 10.24-17.066667 34.133333-6.826667 47.786667 10.24 13.653333 34.133333 17.066667 47.786667 6.826666l81.92-61.44v307.2c0 20.48 13.653333 34.133333 34.133333 34.133334s34.133333-13.653333 34.133333-34.133334z m129.706667-252.586666c10.24-13.653333 6.826667-37.546667-6.826667-47.786667l-34.133333-27.306667c-13.653333-10.24-37.546667-6.826667-47.786667 6.826667-10.24 13.653333-6.826667 37.546667 6.826667 47.786667l34.133333 27.306666c6.826667 3.413333 13.653333 6.826667 20.48 6.826667 10.24 0 20.48-3.413333 27.306667-13.653333z" fill="#3E2AD1" p-id="2083"></path></svg> <input id="fileControl" type="file" > </a> <button style="button:active {color: #fff;background: var(--theme);}" id="btn">插入</button> <?php endif; ?> [/hide]找到输出评论的div标签,添加 id=markdown 的属性,不同的主题markdown解析的id可能不同,可以进入文章按f12,找到文章的父标签查看。添加css文件 btn.css美化上传和插入按钮,可根据喜好自己修改或者加入样式,创建好文件后复制下方代码粘贴保存即可,并在head.php或者header.php中引入文件。.file { position: relative; display: inline-block; background: #D0EEFF; border: 1px solid #99D3F5; border-radius: 4px; padding: 4px 5px; overflow: hidden; height: 32px; color: #1E88C7; text-decoration: none; text-indent: 0; line-height: 18px; } .file input { position: absolute; font-size: 100px; right: 0; top: 0; opacity: 0; } .file:hover { background: #AADFFD; border-color: #78C3F3; color: #004974; text-decoration: none; } .xgimg{ display: flex; align-items: center; justify-content: flex-end; } .xgimg button { background: var(--classD); padding: 0 15px; height: 32px; border: none; font-size: 13px; transition: all 0.35s; color: var(--main); } .xgimg button:active { color: #fff; background: var(--theme); } .showFileName{ width:40%; font-size: 12px; text-align: right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } @media screen and (max-width: 768px){ .showFileName{ width:0px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }创建js文件 img.js创建文件,复制下方代码粘贴,然后把图床API接口改成自己的,如果使用其他的图床接口,请根据接口的开发文档,使用formData.append(); 方法添加需要的参数即可,修改好后,在footer.php中引入文件,并且在它的上方 axios.min.js 因为上传使用的是axios方式请求。<script type="text/javascript" src="https://unpkg.com/axios@0.27.2/dist/axios.min.js"></script>[hide]$("#btn").click(function(){ var formData = new FormData(); var upfiles = $("#fileControl").get(0).files; formData.append("file", upfiles[0]); axios({ // 请求类型 method: "POST", url: "https://book.xggm.top/api.php", //XG图床API headers:{'Content-Type':'multipart/form-data'}, data:formData }).then((response) => { document.getElementById('comment-content').value=document.getElementById('comment-content').value+'!['+response.data.name+']'+'('+response.data.viewurl+')'; }); }); $(function() { //显示隐藏的文件名并上传状态切换 $('.showFileName').hide(); $('#btn').hide(); $("#upload").on("change", "input[type='file']", function() { var filePath = $(this).val(); // 如果不限制上传文件类型,请注释此条代码,删除下以后代码的注释 if(filePath.indexOf("jpg") != -1 || filePath.indexOf("png") != -1 || filePath.indexOf("gif") != -1 || filePath.indexOf("jpeg") != -1 || filePath.indexOf("ico") != -1 || filePath.indexOf("webp") != -1 || filePath.indexOf("bmp") != -1 || filePath.indexOf("tif") != -1 || filePath.indexOf("tiff") != -1) { // if(filePath) { $(".fileerrorTip").html("").hide(); var arr = filePath.split('\\'); var fileName = arr[arr.length - 1]; $('.showFileName').show(); $('#btn').show(); $(".showFileName").html("已选择文件名:" + fileName); } else { $('.showFileName').show(); $(".showFileName").html("请选择图片文件!"); $('#btn').hide(); return false } }); });[/hide]最后,再后台开启评论图片功能,清除缓存刷新页面,图片上传按钮就出现了,附一张评论图片成功的评论截图[line]教程结束[/line]
2022年08月10日
7,028 阅读
31 评论
9 点赞
2022-08-10
外链网盘源码
外链网盘一款PHP网盘与外链分享程序。支持所有格式文件的上传,可以生成文件外链、图片外链、音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码支持文本、图片、音乐、视频在线预览,这不仅仅是一个网盘,更是一个图床亦或是音乐在线试听网站。支持本地、腾讯云、又拍云、华为云OBS存储,支持自定义本地存储路径。支持图片违规检测,对接阿里云内容安全服务,支持开启视频文件人工审核。服务器环境需求 Mysql 5.6 + PHP 7.0以上首页后台设置API文档Github地址:https://github.com/XG2020/XGPan[card-default width="100%" label="下载地址"][btn href="https://www.lanzoum.com/iN2gi09bympc" type="primary"]点击下载[/btn] 复制密码: [copy]xggm[/copy] [/card-default]
2022年08月10日
4,160 阅读
12 评论
0 点赞
2022-08-08
Typecho-XGLoginQQ扫码登录插件
插件特点本插件建议配合定制版typecho使用效果最佳插件登录注册界面与绑定账号界面可以配合定制版typecho后台美化插件使用美化界面插件只支持QQ登录(原因其他登录方式不稳定,微信网页登录会提示风险拦截不稳定,腾讯问卷接口失效)插件实现原理通过扫码授权登录QQ空间获取唯一的标识码写入文件与账号绑定到一起,请放心使用。效果图登录注册界面插件后台设置美化插件设置github地址:https://github.com/XG2020/XGLogin
2022年08月08日
4,350 阅读
9 评论
5 点赞
1
2
...
7