自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (18)
  • 收藏
  • 关注

原创 aarch64架构CPU的docker中ubuntu18.04,20.04,22.04等系统apt update均报错的原因

早上8点左右我到公司执行atp update,一切正常,安装lrzsz,htop也成功。但是到了10点左右,就开始无法使用了。宿主及环境为aarch64的CPU的Ubuntu18.04,docker版本为自带的19.03.6。这个原因很乌龙,之前百度搜索结果也都不对,最终原因竟然只是因为。

2023-09-08 08:44:47 798 1

原创 基于 gmssl实现的sm2加密(C++)(改进版)

此文章基于https://blog.csdn.net/hacker_lpy/article/details/124211114提供的方法,经过测试修正代码后,与https://the-x.cn/zh-cn/cryptography/Sm2.aspx提供的工具的加密解密数据一致。将上述三个文件替换掉该项目中的相应文件,make即可得到libgmutil.so和test文件。1、修正SM2加密解密使用C1C3C2的顺序(手动调整的)。2、修正SM2结果不正确的问题。

2023-06-15 11:20:16 1699 3

原创 SM4加密解密的C++代码

本代码源于文章:https://blog.csdn.net/nicai_hualuo/article/details/121626931 中提供的算法,进行了完善而已。SM4的加密,使用了ECB模式,PKCS7填充,实现了对十进制、字符串的加密解密,加密结果和解密参数支持十六进制字符串和base64两种方式。

2023-06-14 16:56:27 1325 1

原创 sm3加密(32位哈希,64位十六进制数据)

https://blog.csdn.net/nicai_hualuo/article/details/121555000 中介绍了sm3的算法并给出了可用代码,我只是将其拷贝过来,测试、去掉多余的输出,并进行了简单封装,以方便项目中使用。用法见main函数。

2023-06-14 11:15:59 2718 1

原创 vue+element中解决upload跨域问题

在vue + element UI中使用Upload 上传功能之所以在action里填写的URL无法自动使用vue里本来配置好的解决跨域的转发方案,是因为没有像普通Ajax请求(使用axios)一样给设置相同的头部路径。上面的转发配置代表请求以/api开始的时候,进行转发操作。我看到网上的文章写得太过复杂,所以我纠正一下,实践过的。这样设置后,本地调试、编译后运行,都不会有问题了。

2023-06-07 10:49:01 1158

原创 安装docker和centos 7镜像记录

进入容器后,安装所需服务软件,并部署好文件。如果要将容器提交为镜像,然后导出给其他地方部署用,建议先停止所有服务,将挂载的目录中的文件移除出去再提交、导出镜像,这样镜像中的/web目录就是个空目录,方便导入镜像后创建容器去挂载外面的web目录(web目录随镜像一起发布)。使用技巧:在docker中运行的centos7也支持rc.local,不过/etc/profile不会在进入shell交互时自动执行,需要在/etc/profile.d/xxx.sh中设置自己需要部署的环境变量。

2023-04-07 08:17:06 974 1

原创 C++容器迭代删除元素的正确方法

原理是:在擦除之前,先将迭代器往后移动。

2023-03-10 20:16:36 1347 1

原创 windows里的vscode的c_cpp_properties.json

在打开代码目录中建立目录.vscode,目录中存放c_cpp_properties.json,内容如下,可以准确识别代码定义,否则会有很多波浪线,提示代码无法识别。

2022-11-29 15:17:01 1262

原创 C++正则获取IP地址

【代码】C++正则获取IP地址。

2022-10-08 15:16:36 963

原创 用mysql C api存取二进制数据

mysql的c接口,使用普通的query方法,很难获取到二进制数据。使用mysql_stmt_前缀的函数,用mysql_stmt_bind_result的方式,可针对各种类型的数据进行获取操作

2022-09-15 16:54:30 559

原创 des对称加密解密的C++接口封装

网上找到的des对称加密解密的代码,自己只是做个备份保存,方便以后用到的时候过来复制一下。

2022-09-15 15:58:07 361

原创 js校验日期时间的正则表达式

时间就简单多了,后面的([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]代表了小时、分、秒的正则,因为小时是00-23,所以针对0、1开头的后面可以跟0-9,但是对于2开头的,只能是0-3,后面的分钟、秒则是同一个规则,从00-59.2、月份和日期联合:(((0[13578]|1[02])/(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)/(0[1-9]|[12][0-9]|30))|(02/(0[1-9]|[1][0-9]|2[0-9])))..

2022-08-04 16:44:38 6487 1

原创 libssh2+websocketpp做后端,vue xterm做前端的web端shell终端

程序采用多线程方式,有心跳监测,经过大量测试,运行相对很稳定的一段程序。之前发布了一篇文章,前端是一样的,只不过后端用的nodejs技术做的后台脚本,那个脚本太简单了,毕竟是解释性语言,就是节省开发时间,而且性能也不会太差。websocketpp的下载地址https//github.com/zaphoyd/websocketpp。libssh2下载地址https//github.com/libssh2/libssh2。boost的下载地址https//www.boost.org/.........

2022-07-22 14:20:51 1391

原创 npm ssh2 + vue xterm 实现web端ssh终端功能

为了得到一个相对完善的后端websocket服务进程和前端页面功能,我也是百度并自己尝试了很长时间了,总结从百度搜索得来后缺失的要点如下:前端要点:1、发送数据用json格式字符串,后端方便读取后判断是需要调整屏幕大小还是发送操作命令。2、this.fitAddon.fit()的调用要延时执行,等页面基本OK了再执行,比如3、绑定window的resize,并注意在重连以后也要延时执行调节屏幕大小功能。后端:ssh.shell调用的时候要传入配置{term: ‘xterm’}.........

2022-07-22 11:34:56 3492

原创 vue导入导出csv文件(插件papaparse + jschardet)

csv的导入导出之前我写过一篇文章:https://blog.csdn.net/canlynetsky/article/details/125278779,按那篇文章导出的是带BOM头的csv文件,但是在WPS编辑后会变成GBK编码,所以依靠BOM头判断如何解析。此文则使用vue的插件papaparse + jschardet来实现导出导入以及字符集编码的监测。直接上代码:项目中需要安装这两个插件:npm install papaparse jschardet -S...

2022-07-20 11:31:03 1933 1

原创 使用libssh2做的ssh客户端(epoll模型,占用资源低)

libssh2使用比较抽象,网上例子多但是经过详细测试的却不多,本文用网上的例子编译运行后,发现该例子运行后即使空闲时CPU占用达到100,经过改进,且改为epoll模型后用,CPU占用率低至空闲时0%。...

2022-07-08 15:23:29 757

原创 scandir按文件名升序获取满足条件的文件名

如果用readdir扫描目录,文件名是按照索引排序的,会显得凌乱。在某些情况下我们需要文件名的顺序排列,那么久需要用scandir了。按文件名升序排列的获取如下所示:

2022-06-24 15:46:16 313

原创 收藏一个日期时间处理的功能函数文件

JavaScript的日期时间处理

2022-06-16 16:33:31 71

原创 vue导出导入csv文件(无需插件)

vue导出csv的时候有一个问题,就是如果数据是UTF-8格式的,需要在文件内容前面加BOM头,这样Excel程序可以识别这个BOM头,不会乱码。安装插件命令:npm install papaparse实例代码如下,我测试通过的:............

2022-06-14 15:17:03 3109 1

原创 vue导出导入Excel文件(复杂表头)

最近项目中需要用到将页面上展示的少量数据导出到Excel,而页面的表格的表头是做了归类的多级表头,在网上找到一篇文章介绍的非常好,拿过来试了试,修正了其中一些错误,下面贴的代码是在项目中使用过的。导入参考的文章:https://blog.csdn.net/weixin_52103939/article/details/118551223导出参考的文章:http://t.zoukankan.com/guwufeiyang-p-13245875.html首先安装插件:npm install -S file

2022-06-12 14:43:40 2528 1

原创 websocketpp基本用法

websocketpp是一个基于C11标准开发的websocket c++框架,文档地址为https://docs.websocketpp.org/getting_started.html,源码地址为https://github.com/zaphoyd/websocketpp(经常打不开)。典型使用方法如下代码,额外应该加上多线程,在主线程中针对每个客户端管理其活跃时间,定期清理不活跃的客户端。...

2022-06-08 11:22:41 7027

原创 json.hpp解析和遍历json数据

json.hpp遍历操作json数据的方法

2022-06-07 17:02:08 1189

原创 python3读取修改xml文件(无法保留注释)

python3对xml文件的读写。

2022-05-26 11:45:03 1018

原创 boost解析xml文件(读取)

给大家讲讲boost读取xml文件时踩过的坑。

2022-05-26 11:34:25 1180

原创 交叉编译vim74

网上找到两篇文章,为我成功编译vim打下基础,不过两篇文章都有些缺陷导致编译不成功。第一篇文章为:https://www.cnblogs.com/liangwode/p/5825128.html?utm_source=itdadao&utm_medium=referral另一篇文章为:https://blog.csdn.net/feixiang3839/article/details/73772275首先下载ncurses-5.9.tar.gz,从https://mirrors.sjtug.s

2022-05-24 17:29:05 334

原创 c++获取当前日期时间字符串yyyymmddhhiiss

C++里获取当前时间的字符串的封装。

2022-05-16 16:57:24 1813

原创 GDAL api读写shp文件的方法

GDAL的资料实在太少了,不便上手,还好百度搜索还能找到比较优秀的文章,参考如下:https://www.cnblogs.com/bigbigtree/archive/2011/12/07/2278721.htmlhttps://blog.csdn.net/xzhh19921019/article/details/53408099https://www.osgeo.cn/gdal/doxygen/classGDALDataset.html#afec5fd0fffddbdf530cd6294caa66a

2021-12-10 12:26:40 2853

原创 C语言使用sqlite3.dll连接操作sqlite数据库

C语言使用sqlite3.dll操作数据库的方法。

2021-12-03 12:19:31 2334

原创 C++17的directory_iterator编译错误的解决办法

源代码如下:#include <iostream>#include <filesystem>using namespace std;using namespace std::filesystem;int main(int argc, char **argv){ path str("/"); if (!exists(str)) { return -1; } director

2021-11-08 11:55:19 2457

原创 QTableWidget分页和排序

本例程演示了在将所有数据存储到成员变量后,根据每页显示记录数量对表格数据进行分页展示,且提供了切换页面的按钮和输入框。在支持分页后,同时处理了表头的点击事件,将页面数据进行重排,使用了C++ 11的lamda函数。在Qt5.14.2中编译测试通过。代码粘贴如下:main.cpp#include "dialog.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc,

2021-09-24 17:01:06 1277

原创 cmake的安装

cmake的官网是https://cmake.org/,下载地址为https://cmake.org/download/,下载页面里有各个版本的cmake,可以选择最新的发行版下载。根据我的经验,在河北使用联通的网络下载要比电信的快很多。上班前在家里下载要比去了公司下载快很多。下载列表可能像下面这样:Linux中下载压缩包就行。解压缩后把所有文件移动到/usr就等同于安装了。...

2021-08-06 06:46:35 79

原创 在Ubuntu14.04 里用apt命令安装QT

这两天折腾各种版本的QT,发现在旧版操作系统里安装新版的QT很可能失败,失败后还不好解决,以至于我都放弃了必须安装新版本QT的想法,反正在项目中用到的QT版本其实很低就够用。只要是QT5就行,毕竟不想用QT4了,QT4用json或串口等还要自己下载扩展。在Ubuntu14里编译器版本是4.8.4,QT版本是5.2.1,安装命令如下:sudo apt install qt5-default qtcreator qt5-doc qttools5-dev-tools备注:qt5-default 如果只是

2021-08-04 20:43:31 2559

原创 QT5.9国际化的坑

首先百度的国际化方法,我找到C:\Qt\Qt5.9.9\5.9.9\mingw53_32\translations\qt_zh_CN.qm,放进去用,无效果!但这个文件放到QT5.2.1里用,有效果。我在Ubuntu14.04里用命令sudo apt-get install qt5-default安装了qt5.2.1的编译环境,用sudo apt-get install qtcreator安装了qt5.2.1的编辑器Qt Creator 3.0.1。在QT不知道哪个版本开始,需要将qt_zh_CN.qm

2021-08-03 14:42:43 217

原创 QT5程序在Linux下的发布

首先单独创建目录比如test,目录中拷贝QT编译的release状态的应用程序比如test,然后拷贝两个脚本到test目录:第一个用于打包的pack.sh:#!/bin/sh exe="test" #你需要发布的程序名称des="/home/dhn/test" #创建文件夹的位置deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }') cp $deplist $des第二个脚本用于程序启动run.sh,

2021-08-03 06:43:20 468

原创 QT5.9.9在优麒麟18和20里解决中文输入法和创建应用程序图标

解决中文输入法,是拷贝so到两个目录:sudo chmod +x /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.socp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so ~/Qt5.9.9/5.9.9/gcc_64/

2021-07-31 20:07:19 513

原创 libxml2使用xpath寻找节点

最近做项目总是有解析xml的需求,而迅速定位到所需节点然后进行读取、修改、删除操作是常有的事情,为此,我学习了xpath的用法,总结如下:首先,libxml2的官方文档被墙了,只能百度。找到一篇文章:https://www.cnblogs.com/catgatp/p/6505427.html文章里介绍的方法很实用,我拿过来修改后自己测试并调整。示例代码如下,参照着使用就行了。#include <libxml/parser.h>#include <libxml/tree.h>

2021-07-28 09:35:37 780

原创 使用cpp-httplib和nlohmann/json做一个能传文件的服务器和客户端

最近项目中要搭建自己的响应服务器,C++技术,能跟客户端通讯做一些功能,比如上传下载文件(文本的和二进制的,比如配置文件和应用程序的升级),比如用户登录、添加、修改等操作。自己写规约做了一个,发现很麻烦,用二进制的方法,发送端、接收端的封包操作十分繁琐。周末找到了cpp-httplib,又同时发现了nlohmann/json,发现用这两个库结合起来,就能用C++做一个类似Apache+PHP的网站服务器了!代码编写十分简单,我这里举例的是根据库里的例子修改的,客户端是根据文档编写的,测试通过的。需要

2021-07-25 16:24:34 4261 1

原创 我的vscode的C/C++配置

从一个熟悉的开发环境切换到另一个不熟悉,但已经被公认优秀的开发环境其实也特别困难。我从Sublime Text转到Visual Studio Code(vscode)从根本上说是源于C/C++开发,对于开发PHP/HTML/JavaScript/CSS语言的网站来说,我现在仍然使用Sublime Text 3做网站开发。毕竟在Windows里开发C/C++如果使用MFC开发Windows程序,或者开发Linux平台下的C/C++程序,vscode是一个简洁、高效、易用的编辑器(不编译)。写此博文时,vs

2021-07-08 10:26:59 1172

原创 暴力破解算法

暴力破解算法可用于如下场景:1、密码猜测2、对于罗拉模块的数据请求,当发现模块么有回应数据时,往往考虑是否模块所处位置导致信号无法到达,此时可借助其他模块作为中继来进行通讯。当然无论用于哪种场景,都需要自己实现代码,本代码只是写出了核心算法。算法描述:从1位密码开始,或者说从1个中继开始,从数组中获取每一种值,取到最后一个数据后,翻转到第一个值,增加1位,取第一个值。比如密码组合有[1,2,3,4]四个数字,密码最多4位,那么组合规律如下:123411121314…4444

2021-07-03 13:48:16 986

原创 再谈Linux下的socket编程和epoll模型

之所以将这两件事情一起谈,是因为我认为掌握了这两个技术要点,运用在工作中,几乎能解决大部分我们面对的连接数几百个或者几千个的项目(嵌入式工程师往往只需要面对几十个至数百个连接)。另一方面,对socket有一个正确的认识,也有助于我们开发套接字通讯类的应用程序。首先回顾socket客户端的流程:创建TCP/IP套接字,没有什么好解释的,客户端和服务器都这样: if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {

2021-06-17 20:35:29 483 1

基于 gmssl实现的sm2加密(C++)(改进版)

基于gmutil项目,进行完善并测试通过的代码。

2023-06-15

libssh2+websocketpp+boost实现的web终端C++后台

多线程模式,经过了大量测试,运行比较稳定。 使用epoll模型,抗压能力较强,耗用系统资源少。xterm模式,前端显示彩色。用了boost做xml解析和互斥锁,websocketpp做websocket库,libssh2则是与sshd交互的库。程序采用多线程方式,有心跳监测,经过大量测试,运行相对很稳定的一段程序。 网上有不少nodejs版本的ssh终端后台,虽然也很好用,但如果用于嵌入式场景,C++版本的更适合,只是C++方式实现的代码肯定比nodejs版的复杂太多了,多线程要自己做,互斥锁要自己做,客户端连接资源要自己索引和释放,一不留神就挂掉。 如果是PC机项目,建议用node版本的后台脚本,结合node的各种监控重启机制,可让程序永久在线,而且node版本的本身也不容易挂。 前端用在vue项目中,需要的插件一看就懂,所以我就放了一个vue文件在里面。自己拿过去放到项目里就可以用了,默认全屏的,浏览器缩放会发送屏幕大小到后台,所以没有中断大小不匹配的BUG。 本程序经过本人测试,相对好用也稳定。 注意vue中websocket连接时使用了token发送到后台龚后台进行验证。

2022-07-22

qt_zh_CN.zip

因为要获取可用的qt_zh_CN.qm实在太麻烦,要安装QT带上源码才行,所以自己上传,留作备用。因为安装QT如果选中source的话,安装速度太慢了。而且qt_zh_CN.ts里要替换一个标识符才能用。

2021-09-22

network.zip

对Socket的客户端、服务器模型的封装,另包含了对串口读写的封装,使用epoll模型,方便对多个网络通讯进行管理。 半成品,拿来可以修改成自己的应用程序。使用了工厂模式,但我没有创建工厂类。

2021-06-18

odbctest.zip

MFC利用ODBC连接数据库并显示到列表里的,具备完整的增、改、删功能的示例。其中student数据表根据代码就能看出来,就四个字段:id,name,sex,score.

2020-11-29

odbcgrid.zip

结合ODBC用法的CGridCtrol类的用法,已经支持了双击修改后保存到数据库,支持选择多行后删除多行数据。

2020-11-29

完成端口IOCP模型的套接字类(MFC)

利用windows的完成端口封装的类,这个类来自这个网址:https://blog.csdn.net/educast/article/details/16965029,我把它拿过来调试,然后根据业务进行了调整,可满足对socket的管理工作,支持socket数量无上限(理论上操作系统里最多能有65535个端口号,所以还是有上限的)。多线程管理套接字,实际应用请根据需求看看是否需要加互斥锁。

2020-09-17

NavicatServer_11.0.10.zip

连接SQL Server 2000的客户端管理工具,结合迷你SQL 2000非常好用。 第一次连接的时候会自动提示安装数据库连接驱动。 如果连接发现失败,弹窗英文提示,可再次安装驱动即可。

2020-07-15

QJson源码头文件和编译好的库.zip

QT4引入QJson扩展还要下载cmake编译,太麻烦了,所以我把编译好的文件连同需要部署到Qt开发环境的方法一并提供,希望减轻开发者的负担。 部署和代码编写方法可参考:https://blog.csdn.net/canlynetsky/article/details/106011874

2020-05-09

手机视频处理.zip

手机里拍的照片大多都是好几千像素的宽高,一张图片尺寸可能1MB到6MB甚至10MB不等,如果将这些图片直接拷贝到硬盘备份保存,或者上传到云盘里,只要不洗成照片我觉得没必要。 所以我一直都是将手机照片拷贝到电脑里,用ACDSee之类的软件批量压缩后再上传到网盘。 视频也是利用压缩工具,将100MB的视频压缩到10MB左右后再上传(画质有一定损失,但也很清晰)。 图片压缩我用的ImageMagick命令行工具;视频压缩用的ffmpeg,都是很流行的开发人员熟悉的压缩工具。 我用windows的批处理脚本写了这两个工具。 这次提供的是图片批量处理工具。

2019-05-23

手机图片处理.zip

手机里拍的照片大多都是好几千像素的宽高,一张图片尺寸可能1MB到6MB甚至10MB不等,如果将这些图片直接拷贝到硬盘备份保存,或者上传到云盘里,只要不洗成照片我觉得没必要。 所以我一直都是将手机照片拷贝到电脑里,用ACDSee之类的软件批量压缩后再上传到网盘。 视频也是利用压缩工具,将100MB的视频压缩到10MB左右后再上传(画质有一定损失,但也很清晰)。 图片压缩我用的ImageMagick命令行工具;视频压缩用的ffmpeg,都是很流行的开发人员熟悉的压缩工具。 我用windows的批处理脚本写了这两个工具。 这次提供的是图片批量处理工具。

2019-05-23

Sublime Text 3 for Mac 3075破解版(英文版)

网上下载到的,怕万一啥时候下载不了了,备份一个来。 我用过,好使,安装后输入序列号就可以了,序列号就在包里。

2016-07-05

网站后台管理系统模板ace admin v1.3

ace admin1.3是一款基于bootstrap3的网站后台模板,这款后台模板很出名。下面是模板更新日志和截图 刚才体验了一下,感觉还行,不过唯一不足的就是模板里面用到的CDN和谷歌字体..大家都知道由于墙的原因,谷歌字体加载不进来,所以页面打开速度很慢。 所以我将谷歌字体下载到本地用了,修正了其中js从本地加载。

2015-10-15

优化过的ueditor_1.4.3

ueditor1.4.3使用了webuploader插件,这个插件很好用,多线程上传,但存在上传候图片顺序被打乱的问题,这对于一次要传数张图片到网页中的情况无法应对,除非你不在乎图片顺序。 另外,word转存限制图片只能传32张,还有图片宽高限制等,我修改了这些参数并修改了部分代码,适用于大部分网站。 可以下载ueditor1.4.3原版代码,用Beyond Compare比较目录,可以知道我做了哪些修改。

2015-08-31

js和php配合的rsa openssl 加密解密函数

使用公钥加密,私钥解密的方法,可以使数据在网络上安全传输,即使任何人获取到了密文,也获取到了js代码里的私钥或公钥,他也因为无法获取到与之配对的私钥或公钥而对密文毫无办法。 但是注意:公钥私钥2对,php用一对,js用一对,php的公钥和js的私钥写在js代码里,php的私钥和js的公钥则存储在服务器上(存储位置必须无法使用url路径访问到,即放在网站目录之外。 任何一对密钥不可以同时暴露给用户,否则密文可破解。 因为密钥长度影响可加密明文的最大长度,所以按文字截取然后加密并base64编码,就这样将每次加密并base64编码候的字符串连接起来,解密的时候每次取出固定字节数(加密任何长度明文都产生固定长度的密文),进行解密然后再连接起来。

2015-08-26

SecureCRT 7.0.2 x86 for mac os x

旧版本的32位的SecureCRT破解版。自带破解方法。

2015-06-12

SquirrelMail 支持html并base64编码

SquirrelMail 是一个用PHP开发的Web邮件系统。它内置纯PHP支持的IMAP和SMTP协议,所有页面都遵循 HTML 4.0标准(没有使用任何 JavaScript 代码),以便最大限度兼容各种多浏览器。SquirrelMail对系统要求非常低,安装和配置都非常容易。 SquirrelMail 具备一个客户端邮件程序所应拥有的一切功能,包括支持增强型的MIME、地址薄、文件夹操作等等功能。 我在本身基础上增强了对中文的支持,并将编辑器换成ueditor以支持html格式邮件,然后将信体进行base64编码。

2014-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除