技术分享
技术分享

技术分享

代码改变我们的世界,技术永不会止步于此。

热度:5,525,234 | 探讨:138 | 帖子:38,772
板块公告: 禁止一切广告引流!!!!

全部贴子

最新 热门 回复时间
「原创」TQGame在线小游戏联机平台1.3源码 +3

「原创」TQGame在线小游戏联机平台1.3源码

emmmm🌚实在是没有什么事情干了索性无聊就搞了个这么个东西出来目前有两个模式 都是双人的-----------------------------带音效奖池里抽到的道具可以在背包里使用然后呢细分了排行榜以及个人信息视图每个模式都有它的三个评分点,三个评分点决定了最后的综合评分,综合评分又决定了最后的排位积分加减值对局结算场景和匹配成功场景都做了将就吧------------------------------php8.0 及以上 MySQL5.7 及以上后台账号密码账号:admin密码:123456只能云服务器哦[吐舌]虚拟主机没得法链接:https://www.123865.com/s/UUEuVv-RvKgA    
自动化小鱼工具箱V1.0源码 +4

自动化小鱼工具箱V1.0源码

1.支持本地数据新增 、修改、删除、查询博客 需要注意是JSON数组格式 在log_spreak.js中修改即可2.支持动态数据切换:1.活跃工具,月使用量 API调用 满意度评分3.支持功能自动化分区功能:MD5加密,Base64编码/解码 JSON格式转换 IP地址合法性查询 代码一键生成 AST解混淆(待完善)4.网络安全模块:1.密码生成器2.端口扫描器5.支持本地安全Debuger,您可以选择关闭,也可以选择开启!默认是开启的!在des.js文件夹下(上线建议开启)6.另外本地支持开启路由保护,但并非所有路由都支持路由保护,后续在新的版本会进行优化!7.支持三端响应式布局8.支持多端多浏览器兼容9.支持IP检测,proxy代理检测,杜绝网站例如虚拟流量脚本,您可以关闭,默认开启!关闭去 root目录下/proxy.js注释代码!10.支持路由检测,默认是关闭的,如果你需要开启,你可以进行开启支持虚拟主机以及任意服务器的部署,以及本地部署!链接:https://www.123865.com/s/UUEuVv-DvKgA后期如果有更新,我会继续发到六爱,非喜勿喷!喜欢就留个金币吧!    
(附带源码)最美博客poetize搭建教程

(附带源码)最美博客poetize搭建教程

启动命令--spring.datasource.username=root --spring.datasource.password=密码网站配置文件记得替换域名server {listen 443 ssl;server_name 192.168.6.132; #域名ssl_certificate /www/server/panel/vhost/cert/192.168.6.132/fullchain.pem;ssl_certificate_key /www/server/panel/vhost/cert/192.168.6.132/privkey.pem;ssl_session_timeout 5m;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_prefer_server_ciphers on;# 禁止访问隐藏目录(.git/)和隐藏文件(.file)和遍历目录(../)location ~ /\. {deny all;access_log off;log_not_found off;}location / {root /home/poetize/poetize-ui/; #前端路径,注意域名index index.html;try_files $uri $uri/ /index.html;}location /im {alias /home/poetize/poetize-im-ui/; #这里聊天室路径,注意域名index index.html;try_files $uri $uri/ /index.html;}location /api/ {rewrite ^/api/(.*)$ /$1 break;proxy_pass http://127.0.0.1:8081;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-real-ip $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}location /socket {proxy_pass http://127.0.0.1:9324;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_read_timeout 600s;}#静态文件存储的目录(这里是本地存储的路径设置,需要和源码哪里的路径一模一样,注意域名的不同)location /static/ {alias /home/poetize/file/;autoindex off;valid_referers 192.168.6.132;if ($invalid_referer) {#return 403;}}}下载地址:https://www.123865.com/s/UUEuVv-rvKgA 
deepseek秒变图像生成助手 解决不能生成图片的烦恼 +1

deepseek秒变图像生成助手 解决不能生成图片的烦恼

你们是否还在因为要求deepseek生成图片,他却给出下面的回答那么只需要一个提示词即可生成(链接是国外的,无推广,无引流)提示词:你是一个图像生成助手,请根据我的简单描述,想象并详细描述一幅完整的画面。 然后将你的详细描述翻译成英文,并把图片链接放到文本里,并插入到以下链接的{prompt}部分: ![image](https://image.pollinations.ai/prompt/{prompt}?width=1024&height=1024&enhance=true&private=true输入你的需求使用方法,输入提示词,然后再输入你的需求,等待deepseek回答完后,长按他的回答,选择点击文本,滑到最下面,找到图片链接就行了(只拿https://开头以后的,不要把)也拿了,有水印)
关于网站安全性讲解其一 +1

关于网站安全性讲解其一

我知道大家都喜欢购买比如说卡密,那么针对网站卡密安全你觉得你知道多少?有的说,我直接小黄鸟抓包不就得了么,何必那么费事勒?其实假设你有一张例如说ASD_97687_486484_Bzhbsj假设这是一张卡密,然后呢,你掌握了他们的基本上都是差不多的,那你可以交给AI帮你处理逻辑算法,其中,你可以处理的逻辑算法,就必定爆破成功!但这里也有一个问题,就是爆破里面常见有一个问题就是,限制输入,但有的文本框,压根不存在限制输入,你输入多少次都不管你,这也就导致漏洞存在之一!其次,我们谈一谈,关于返回响应码处理,有的响应码成功,可能是以比如说vip:1 sign:1 失败就是404 那么针对于如此,小黄鸟只需要替换掉你的状态码,就可以实现所谓漏洞登录了!谢谢大家的支持,仁者见仁,智者见智!每天一个互联网小知识分享! 
2025高考倒计时源码分享 +1

2025高考倒计时源码分享

一年一度最紧张刺激的时候到来了,我们站长也可以在自己的站点上加个高考倒计时代码,让网站更加生动这个是没美化的原始版本下载地址:https://www.123865.com/s/UUEuVv-8vKgA这个是优化的高考倒计时我在【闪电云盘】分享了文件:高考倒计时网页源码.7z链接:https://pan.556i.com/s/ueqQFjzzLu
一个简单的加密卡密管理系统,允许管理员生成卡密并自定义加密内容, +1

一个简单的加密卡密管理系统,允许管理员生成卡密并自定义加密内容,

卡密验证系统 💳🔐📖 项目介绍卡密验证系统 是一款基于 PHP 和 MySQL 开发的轻量级卡密管理工具,适用于虚拟商品销售、会员服务授权等场景。它提供了卡密生成、验证和管理的全套功能,支持加密内容和文件的绑定,帮助您快速部署自己的卡密验证服务。🌟 功能介绍🛠 卡密验证功能支持用户输入卡密进行验证。验证成功后显示绑定的加密内容或允许下载绑定的加密文件。支持剩余时间倒计时,实时提示用户卡密状态。🎛 管理员功能生成卡密:自定义卡密长度、有效时长。支持 绑定加密内容和文件生成一对一卡密:每个卡密对应唯一的加密内容或文件。文件格式支持 .txt、.zip、.pdf 等常见类型。管理卡密:查看卡密使用状态,包括使用时间、IP 地址和地理位置。一键清理过期或已使用的卡密。加密内容实时更新:支持 HTML 格式和代码高亮显示。实时预览更新后的加密内容。修改密码:管理员可以修改登录密码。🌐 环境要求服务器要求:支持 PHP 的服务器(如 Apache 或 Nginx)。PHP 版本:PHP 7.4+(推荐更高版本以提升安全性)。数据库:MySQL 5.7+ 或更高版本。🚀 部署方法1️⃣ 下载项目https://www.123865.com/s/UUEuVv-0vKgA💡常见问题数据库连接失败? 确保数据库主机名、用户名和密码正确无误。 确认数据库服务器已启动。文件上传失败? 检查 public/uploads 目录是否有写入权限。如何重新安装系统? 删除 install.lock 文件,然后访问 http://域名/install.php 重新安装。 

Node.js 库 精选

Node.js 是一个开源的 JavaScript 服务器端运行环境。它以异步 I/O 和事件驱动模型而闻名遐迩,这些特性使其在处理实时分布式系统的海量数据时表现卓越。此外,Node.js 支持跨平台操作,进一步提升了其在 Web 开发领域的吸引力。Node.js 库概述库,亦可称为模块,是一段封装了常用功能的预编写代码。其存在目的是加速编码进程,促进代码复用,助力开发者践行 “DRY” 原则(Don't Repeat Yourself,避免重复劳动)。与提供程序结构框架不同,库通常提供特定功能,可在项目开发的任何阶段灵活运用。精选 Node.js 库介绍以下是 13 款精心挑选的 Node.js 库,它们各具独特功能,助力简化 Web 开发流程。1. puppeteerPuppeteer 是一个 Node.js 框架,通过 DevTools 协议控制 Chrome/Chromium,用于自动化测试和网页内容抓取。1. SequelizeSequelize 是一款基于 Promise 的 ORM 工具,致力于简化与关系型数据库的交互。它支持 PostgreSQL、MySQL、MariaDB、SQLite 等多种数据库系统。Sequelize 通过 JavaScript 对象映射数据库表结构,使开发者无需编写原始 SQL 语句即可执行数据库操作,有效降低 SQL 注入风险,且与 GraphQL 兼容。2. CORSCORS 是一个 Node.js 包,作为 Connect/Express 的中间件,实现跨域资源共享。它简化了 Web 应用中 CORS 的启用过程,允许开发者指定允许访问的域名,并提供灵活的错误处理机制,有助于分析和防范安全风险。3. NodemailerNodemailer 是一个简化邮件发送流程的 Node.js 库。它基于 SMTP 协议,支持多种邮件传输服务,开发者可通过设置 from、to、subject 等参数构建邮件消息,并支持发送 HTML 邮件内容。4. passportPassport 是一个 Node.js 的身份验证中间件,支持超过 500 种身份验证策略。它为社交网站登录、OAuth 委托身份验证以及 OpenID 联合身份验证提供内置支持,极大地简化了身份验证流程。5. AsyncAsync 是一个 Node.js 实用工具模块,专注于简化异步 JavaScript 的处理。它提供超过 70 种方法来控制异步流程,帮助开发者摆脱所谓的 “回调地狱”。6. WinstonWinston 是一个多功能的日志记录包,支持多种日志传输方式。它允许开发者根据需要自定义日志格式,并提供灵活的日志级别控制。7. MongooseMongoose 是一个为 MongoDB 设计的 ODM 库,提供模式定义、模型验证和查询构建等功能。它通过模式层为 MongoDB 集合提供结构化的数据操作接口。8. Socket.IOSocket.IO 是一个实时通信库,允许服务器和客户端之间进行基于事件的双向通信。它支持 WebSocket 和 HTTP 长轮询,提供可扩展的事件广播机制。9. LodashLodash 是一个包含 200 多个实用函数的 JavaScript 工具库,提供类型检查、数学运算等常见编程任务的解决方案。10. AxiosAxios 是一个基于 Promise 的 HTTP 客户端,适用于 Node.js 和浏览器环境。它支持自动数据转换,并提供防止 CSRF 的安全特性。11. SequelizeSequelize 是一款基于 Promise 的 ORM 工具,致力于简化与关系型数据库的交互。它支持 PostgreSQL、MySQL、MariaDB、SQLite 等多种数据库系统。Sequelize 通过 JavaScript 对象映射数据库表结构,使开发者无需编写原始 SQL 语句即可执行数据库操作,有效降低 SQL 注入风险,且与 GraphQL 兼容。12. MulterMulter 是一个处理多部分表单数据的 Node.js 中间件,它基于 Busboy 构建,支持文件上传和数据解析。13. DotenvDotenv 是一个用于管理环境变量的 Node.js 模块,它允许开发者将配置数据与源代码分离,提高应用程序的安全性和灵活性。最后在 Node.js 的生态系统中,存在众多功能强大的库,选择合适的库对项目的成功至关重要。本文介绍的库或许能在您的下一个应用开发中发挥巨大作用,尤其是如果您频繁使用 MongoDB,Mongoose 可能会成为您的理想之选。希望这些信息对您有所帮助。
前端小而美的javascript库 +1

前端小而美的javascript库

前端有很多小而美的库,接入成本很低又能满足日常开发需求,同时无论是 npm 方式引入还是直接本地引入使用都可以。以下推荐几个小而美的javascript库。driver.jsdriver.js 是一款用原生 js 实现的页面引导库,上手非常简单,体积在 gzip 压缩下仅仅 5kb。文档地址:https://drag-and-drop.formkit.com/dayjsDay.js 是一个简约的 JavaScript 库,Moment.js 的 2kB 轻量化方案,拥有同样强大的 API文档地址:https://day.js.org/docs/zh-CN/installation/browserfilesizefilesize.js 是一个小型 JavaScript 库,它创建一个名为 filesize() 的全局函数。它提供了一种获取人类可读的文件大小字符串的简单方法。文档地址:https://filesizejs.com/use-debounce无忧去抖的 React 库!让你不再为使用防抖烦恼文档地址:https://github.com/xnimorz/use-debounceradash实用的工具库,相比 lodash,更加面向现代,提供更多新功能(tryit,retry 等函数),源码可读性高,如果不想安装它,大部分函数可以直接复制到本地使用。文档地址:https://www.npmjs.com/package/radashFileSaverFileSaver.js 是客户端保存文件的理想解决方案,适用于在客户端生成文件的Web应用文档地址:https://gitcode.com/eligrey/FileSaver.js/overview
JavaScript 如何下载图片

JavaScript 如何下载图片

我们在浏览器使用JavaScript下载图片的时候;通常会想到使用window.location.href=imgUrl或者window.open(imgUrl);但是有时候我们会发现图片会在浏览器打开;而达不到我们想要的下载效果;于是通过调研;下面总结了两种图片下载的方法前置代码下载图片前首先在JavaScript通过new Image()的方式加载图片;然后再对图片做转换,转换包括图片转base64,base64转blob等;然后对转换之后的图片资源进行下载。下面直接上代码。// 加载图片
async function loadImage (params) {
// 图片src 必传
let src = params.src
return new Promise((resolve, reject) => {
let img = new Image()
img.src = src
img.crossOrigin = 'anonymous'
img.onload = () => {
resolve(img)
}
img.onerror = reject
})
}

// 图片转base64
function img2Base64 (image) {
// 图片画到canvas
const canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
const context = canvas.getContext('2d');
context.drawImage(image, 0, 0);
return canvas.toDataURL('image/png', 1.0)
}
// base64转blob
function base64ToBlob (base64Code) {
let parts = base64Code.split(';base64,')
let contentType = parts[0].split(':')[1]
let raw = window.atob(parts[1])
let rawLength = raw.length
let uInt8Array = new Uint8Array(rawLength)
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i)
}
return new Blob([uInt8Array], {
type: contentType
})
}

// 下载资源
function downloadFile(href, filename) {
const link = document.createElement('a');
link.href = href;
link.download = filename;
link.setAttribute('type', 'application/octet-stream');
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}下载图片代码方法一;先加载图片,再把图片转base64,再下载base64。方法二;先加载图片,再把图片转base64,再把base64转blob,再下载blob。// 1;先加载图片,再把图片转base64,再下载base64
async function downloadImg1(imageUrl) {
const image = await loadImage({src: imageUrl})
let base64 = img2Base64(image)
// 下载图片
downloadFile(base64, 'file.png');
}
// 2;先加载图片,再把图片转base64,再把base64转blob,再下载blob
async function downloadImg2(imageUrl) {
const image = await loadImage({src: imageUrl})
let base64 = img2Base64(image)
let blob = base64ToBlob(base64)
// 下载图片
downloadFile(URL.createObjectURL(blob), 'file.png');
}

// 示例
downloadImg1('https://xyhnnx.gitee.io/img/getdoc.png');
downloadImg2('https://xyhnnx.gitee.io/img/getdoc.png');可能遇到的报错如果遇到这个错误:Access to image at 'xx' from origin 'xx' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.这个错误提示通常是由于遵循同源策略而引起的,它防止JavaScript代码从不同的源(域名、协议或端口)获取数据。如果试图从另一个域名下加载图像,即在跨域请求图片时,由于CORS限制,浏览器可能会拒绝显示该图像并抛出这个错误。要解决这个问题,您可以使用下面的任一方法:将图像文件存放在与您的网站相同的主机上,或者使用基于相对路径的URL。这将避免跨域问题。如果必须从不同的域名或主机加载图像,您需要在相关的服务器上设置Access-Control-Allow-Origin标头,在响应中包含允许访问资源的域名。例如,在HTTP响应中添加以下标头可以允许所有域名访问图片:Access-Control-Allow-Origin: *如果您无法在服务器上进行更改,可以尝试使用代理来获取图像数据。例如,您可以在您的服务器上设置代理,在代理中请求图像,而不是直接从浏览器中请求。这将避免跨域问题。总之,CORS问题通常涉及到服务器、响应头或代理,您可以根据实际情况选择相应的解决方案来解决这个问题。
Nodejs 获取指定文件夹下所有文件及文件夹

Nodejs 获取指定文件夹下所有文件及文件夹

做项目时候经常会遇到获取本地某个文件夹下所有内容的情况;下面简单列举两种方法。## 方法一 文件及文件夹扁平化输出

### 代码

```javascript

const fs = require('fs');

function getFilesAndFoldersInDir(path) {
const items = fs.readdirSync(path);
const result = [];
items.forEach(item => {
const itemPath = `${path}/${item}`;
const stat = fs.statSync(itemPath);
if (stat.isDirectory()) {
let data = {
// 文件夹
type: 'folder',
name: item
}
let children = getFilesAndFoldersInDir(itemPath)
if (children && children.length) {
data.children = children
}
result.push(data);
} else {
// 文件
result.push({
type: 'file',
name: item
});
}
});
return result;
}

let list = getFilesAndFoldersInDir('/jay')
console.log(list)输出结构[
{
"size": 1224860,
"name": "周杰伦-Intro.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录1/周杰伦-Intro.mp3"
},
{
"size": 7432949,
"name": "周杰伦-Mojito.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录1/周杰伦-Mojito.mp3"
},
{
"size": 9866516,
"name": "周杰伦-不爱我就拉倒.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录1/周杰伦-不爱我就拉倒.mp3"
},
{
"size": 9401524,
"name": "周杰伦-倒影.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录1/周杰伦-倒影.mp3"
},
{
"size": 10831295,
"name": "周杰伦-等你下课 (with 杨瑞代).mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录1/周杰伦-等你下课 (with 杨瑞代).mp3"
},
{
"size": 10346118,
"name": "周杰伦-错过的烟火.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录1/周杰伦-错过的烟火.mp3"
},
{
"size": 10687350,
"name": "周杰伦-我是如此相信.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录2/周杰伦-我是如此相信.mp3"
},
{
"size": 9794418,
"name": "周杰伦-最伟大的作品.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录2/周杰伦-最伟大的作品.mp3"
},
{
"size": 7504609,
"name": "周杰伦-粉色海洋.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录2/周杰伦-粉色海洋.mp3"
},
{
"size": 10316859,
"name": "周杰伦-红颜如霜.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录2/周杰伦-红颜如霜.mp3"
},
{
"size": 8926108,
"name": "周杰伦-说好不哭 (with 五月天阿信).mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录2/周杰伦-说好不哭 (with 五月天阿信).mp3"
},
{
"size": 10664502,
"name": "周杰伦-还在流浪.mp3",
"path": "/jay/《最伟大的作品》专辑MP3/目录2/周杰伦-还在流浪.mp3"
}
]方法二 文件及文件夹以树状结构输出代码// 获取文件夹下所有文件
function getFilesAndFoldersInDir(path) {
const filesList = [];
readFile(path, filesList);
return filesList;
}

// 遍历读取文件
function readFile(path, filesList) {
const files = fs.readdirSync(path); // 需要用到同步读取
files.forEach(walk);

function walk(file) {
const states = fs.statSync(path + '/' + file);
if (states.isDirectory()) {
readFile(path + '/' + file, filesList);
} else {
// 创建一个对象保存信息
const obj = {};
obj.size = states.size; // 文件大小,以字节为单位
obj.name = file; // 文件名
obj.path = path + '/' + file; // 文件绝对路径
filesList.push(obj);
}
}
}

let list = getFilesAndFoldersInDir('/jay')
console.log(list)输出结构[ { "type": "folder", "name": "《最伟大的作品》专辑MP3", "children": [ { "type": "folder", "name": "目录1", "children": [ { "type": "file", "name": "周杰伦-Intro.mp3" }, { "type": "file", "name": "周杰伦-Mojito.mp3" }, { "type": "file", "name": "周杰伦-不爱我就拉倒.mp3" }, { "type": "file", "name": "周杰伦-倒影.mp3" }, { "type": "file", "name": "周杰伦-等你下课 (with 杨瑞代).mp3" }, { "type": "file", "name": "周杰伦-错过的烟火.mp3" } ] }, { "type": "folder", "name": "目录2", "children": [ { "type": "file", "name": "周杰伦-我是如此相信.mp3" }, { "type": "file", "name": "周杰伦-最伟大的作品.mp3" }, { "type": "file", "name": "周杰伦-粉色海洋.mp3" }, { "type": "file", "name": "周杰伦-红颜如霜.mp3" }, { "type": "file", "name": "周杰伦-说好不哭 (with 五月天阿信).mp3" }, { "type": "file", "name": "周杰伦-还在流浪.mp3" } ] } ] }]
一款带弹性动画关闭效果的QQ在线客服咨询插件

一款带弹性动画关闭效果的QQ在线客服咨询插件

带弹性动画关闭QQ在线客服代码是一款带弹性动画关闭效果的QQ在线客服咨询插件代码,可设置客服头像和QQ在线客服代码,关闭时会显示弹跳的动画效果,很有趣。经测试效果相当不错!源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面。https://www.123865.com/s/UUEuVv-KvKgA
上一页
第 12 页,共 3231 页
下一页