博客 (167)

UEditor 的 ASP 版本在虚拟空间上传文件失败,提示“上传错误”或“上传失败,请重试”等,是因为其文件上传组件在创建目录时,没有网站目录外的访问权限。


例如上传文件的磁盘保存路径为:

D:\web\sitename\wwwroot\upload\20180523\123.jpg


百度编辑器的上传组件会依次判断以下目录是否存在,不存在则创建:

D:\

D:\web\

D:\web\sitename\

D:\web\sitename\wwwroot\

D:\web\sitename\wwwroot\upload\

D:\web\sitename\wwwroot\upload\20180523\


虚拟空间自动配置的网站根目录可能是:

D:\web\sitename\wwwroot\


所以,判断存在或创建以下目录没有问题:

D:\web\sitename\wwwroot\upload\

D:\web\sitename\wwwroot\upload\20180523\


但判断存在以下目录时会因为权限不足而失败:

D:\

D:\web\

D:\web\sitename\


解决方法是找到文件 asp/Uploader.Class.asp

找到 CheckOrCreatePath 这个 Function,替换为:

Private Function CheckOrCreatePath( ByVal path )    
   Set fs = Server.CreateObject("Scripting.FileSystemObject")    
   Dim parts    
   Dim root : root = Server.mappath("/") & "\"    
   parts = Split( Replace(path, root, ""), "\" )    
   path = root    
   For Each part in parts    
       path = path + part + "\"    
       If fs.FolderExists( path ) = False Then    
           fs.CreateFolder( path )    
       End If    
   Next    
End Function


另外,如果服务端无法通过 Request.Form 来接收该值,把 <form /> 放到 <table /> 外面试试。

或者绑定 contentChange 事件来赋值(不推荐):

ue.addListener("contentChange", function() {
    document.getElementsByName('xxxxxx')[0].value = ue.getContent();
});

此方法的缺点是,不是所有操作都能触发 contentChange 事件,比如剪切、上传图片等。

改进方法(推荐):在 form 提交之前赋值。

xoyozo 7 年前
4,860
用途批头规格头型
备注
台式机4mm~5mm十字
笔记本外壳3.0mm十字
笔记本内部2.0mm~2.4mm十字
苹果平板笔记本1.2mm五角
苹果中板(套筒)螺丝2.5mm十字可用一字螺丝刀代替
苹果7
0.6mm
三角(Y型)
iPhone 外壳底部0.8mm五角
iPhone 内部
1.25mm~1.5mm十字
三星手机
1.25mm~1.5mm十字个别 2.0mm
小米手机
1.25mm~1.5mm十字


PH000:1.5mm 十字

PH00:2.0mm 十字

PH0:约 3mm 十字

PH1:约 5mm 十字

PH2:约 6.5mm 十字

PH3:约 8mm 十字


购买时请选择:磁性旋转

xoyozo 7 年前
13,509
提供商IPv4IPv6备注
下一代互联网国家工程中心

240c::6666

240c::6644

http://www.chinaipv6.com.cn/

我国首个 IPv6 公共 DNS

114DNS

114.114.114.114

114.114.115.115


http://www.114dns.com/

虽然称为 114DNS,但并非电信专用,联通、移动全国通用。

阿里

223.5.5.5

223.6.6.6

2400:3200::1

2400:3200:baba::1

http://www.alidns.com/

腾讯(DNSPod)
119.29.29.29

https://www.dnspod.cn/Products/Public.DNS

百度180.76.76.762400:da00::6666

http://dudns.baidu.com/intro/publicdns/

谷歌

8.8.8.8

8.8.4.4


更国际化
IBM
9.9.9.9

Cloudflare

1.1.1.1

1.0.0.1

2001:2001::

2001:2001:2001::

全球最快


xoyozo 7 年前
4,276

优点缺点
大白菜

可还原 U 盘空间

支持 UEFI

众多山寨产品,分不清哪个是正宗老牌,说不定还是新秀更优秀

Window 10 自带防病毒软件 Window Defender 提示发现威胁

一键制作的大白菜U盘,将 iso 拷入U盘后安装的纯净系统会被捆绑安装垃圾软件

老毛桃

可还原 U 盘空间

支持 UEFI

PE 还不错

“ISO 模式”没什么问题,但“一键制作”的是 FAT32 格式,不支持将大于 4GB 的 ISO 镜像拷贝到 U 盘

“模拟启动”可启动老毛桃界面,但直接写入硬盘映像的 U 盘无法模拟启动

卸载时,Window 10 自带防病毒软件 Window Defender 提示发现特洛伊木马

软碟通 UltraISO

中规中矩

写入硬盘不会自动还原 U 盘空间

网上找序列号激活

Ventoy

推荐!

开源

可同时拷入多个系统镜像文件,并支持启动时选择

可支持格式化为多种文件格式

一键制作,可升级

暂无

软碟通制作 Windows 系统安装盘过程:

  1. 下载微软官方提供的 iso 系统镜像文件

  2. 如果 U 盘容量缩水,或根本无法正常使用 U 盘,使用老毛桃还原 U 盘空间

  3. 打开 UltraISO,打开要写入 U 盘的 iso 文件

  4. 在菜单上选择:启动 - 写入盘映像...

  5. 选择硬盘驱动器,格式化,写入(注意:点击“写入”是按 FAT32 重新格式化的,若要制作 NTFS 文件系统的 U 盘,请先按 NTFS 格式化,然后在此界面上点击“便捷启动”-“便捷写入”)

  6. 如果 U 盘足够大,可以在 U 盘里多放几个系统镜像,双击打开另一个 iso,将所有文件和文件夹复制到 U 盘上新建的目录中。这样下次需要安装什么系统时,只要把对应的系统的文件放到 U 盘根目录,其它系统移到二级目录中即可。当然还可以往里面存放一些常用软件。

另外最好常备一个带有 PE 系统的启动盘,在旧电脑上安装旧系统时经常会用到。

如果在分区那步无法删除或创建分区(提示动态卷什么的),在确认放弃磁盘中的文件的前提下,可以使用 Shift + F10 调出命令行,键入 diskpart,列出磁盘(list disk),选择磁盘(select disk 0),清除(clean),注意 U 盘启动盘也会在列表中,勿删!

xoyozo 7 年前
9,527

首先要有个工行U盾,一台手机。

苹果用户在 App Store 中搜索 中国工商银行 和 工商银行通用U盾

安卓用户从 m.icbc.com.cn 网站下载安装客户端。


image.png  image.png


以 iPhone 为例:


打开工行U盾 App,选择U盾厂商(我的是“天地融”,无法确定的可以在此查询

把U盾插入手机的耳机孔,状态显示“已连接”

此时点击“查看证书”提示未安装证书


打开中国工商银行 App,进入:我的 - 安全中心 - 支付管理 - 安全介质管理 - U盾证书下载

依照提示安装证书

现在可以愉快地大额转账啦!


xoyozo 7 年前
16,590

获取

在 NuGet 中搜索 ThoughtWorks.QRCode

Demo


简单示例

var qr = new ThoughtWorks.QRCode.Codec.QRCodeEncoder();
Bitmap bitmap = qr.Encode("http://xoyozo.net/");


扩展示例

string content = "http://xoyozo.net/";

var qr = new ThoughtWorks.QRCode.Codec.QRCodeEncoder
{
    // 纠错级别,L (7%)、M (15%)、Q (25%)、H (30%)
    QRCodeErrorCorrect = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.H,
    // 码元尺寸(像素)
    QRCodeScale = 4,
    // 前景色(默认黑色)
    QRCodeForegroundColor = Color.Black,
    // 背景色(默认白色)
    QRCodeBackgroundColor = Color.White,
};

// 根据内容确定 Mode,参:http://en.wikipedia.org/wiki/QR_code#Storage
if (Regex.IsMatch(content, @"^\d+$"))
{
    qr.QRCodeEncodeMode = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.NUMERIC;
}
else if (Regex.IsMatch(content, @"^[0-9A-Z $%*+-./:]+$"))
{
    qr.QRCodeEncodeMode = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
}
else
{
    qr.QRCodeEncodeMode = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.BYTE;
}

Bitmap bitmap = qr.Encode(content, Encoding.Default); // 编码,简体中文系统默认为 gb2312


裁切掉多余的 1 像素

ThoughtWorks.QRCode 生成的四周没有留白的二维码图片,其右边和下边分别会多出 1 像素,使用以下方法来调整图片大小

// 创建一个新的图片(宽度和高度各缩小 1 像素)
Bitmap bitmap2 = new Bitmap(bitmap.Size.Width - 1, bitmap.Size.Height - 1);
// 以新图片来绘图
Graphics g2 = Graphics.FromImage(bitmap2);
// 新旧图片绘制到新图片中(左上角对齐)
g2.DrawImage(bitmap, 0, 0);


将 Bitmap 写入到流

Stream stream = new MemoryStream();
bitmap.Save(stream, ImageFormat.Png);

若已裁切 1 像素,请修改为 bitmap2


将 Bitmap 保存到磁盘

string path = "D:\wwwroot\upload\abc.png";
bitmap.Save(path, ImageFormat.Png);

若已裁切 1 像素,请修改为 bitmap2


更多

使用 ZXing.Net 生成二维码

对比 ThoughtWorks.QRCode 和 ZXing.Net


xoyozo 7 年前
6,575

这个简单的技巧用来解决使固定表头(thead)和滚动表体 (tbody) 的问题。这使得数据表更易于浏览。当用户滚动表格时,固定表头为用户所注意的列提供了上下文。看下面图示你就明白了:

默认情况下,overflow 属性不适用于表格分组元素 theadtbody , tfoot。你可以在下面的示例中看到:

示例

为了使其工作,

第一步是:设置 tbody 为 display:block ,以便我们可以应用 height 和 overflow 属性。

下一步将是:设置thead 中的 tr元素设置为 display:block

所以最终的CSS会是:

.fixed_header tbody{
  display:block;
  overflow:auto;
  height:200px;
  width:100%;
}
.fixed_header thead tr{
  display:block;
}

完整示例

这样,创建表格非常简单而且富有语义,并且没有依赖 JavaScript 。

c
转自 css88 7 年前
3,405

上一篇介绍了如何创建用于 https 的 SSL 证书,本文讲述如何将创建好的 SSL 证书配置到 nginx 中。

 

导入证书

将 .key 文件和 .crt 文件上传到服务器,位置如:/etc/ssl/

 

配置 .conf

打开网站配置文件 *.conf,一般在 /usr/local/nginx/conf/vhost/

添加监听 443 端口:

listen 443 ssl;

添加 ssl 配置信息:

ssl_certificate /etc/ssl/yourdomain.com.crt;
ssl_certificate_key /etc/ssl/yourdomain.com.key;
ssl_prefer_server_ciphers on;

yourdomain.com.crt 和 yourdomain.com.key 改成真实的文件名

 

实现 http 自动跳转 https

配置非 443 端口请求跳转 443 端口访问:

if ($server_port !~ 443)
{
    rewrite ^(/.*)$ https://$host$1 permanent;
}

如果要求仅将 GET/HEAD 请求自动跳转(POST 请求自动跳转会丢失表单数据),那么改成:

set $redirect_https 0;
if ($server_port !~ 443)
{
    set $redirect_https 1;
}
if ($request_method ~ ^(GET|HEAD)$)
{
    set $redirect_https "${redirect_https}2";
}
if ($redirect_https = 12)
{
    rewrite ^(/.*)$ https://$host$1 permanent;
}


验证

最后来检查一下配置得对不对:https://www.geocerts.com/ssl_checker


扩展阅读

在 IIS 中部署 SSL

安装 SSL 证书遇到的一些问题

 


xoyozo 7 年前
5,565

点开其中一款,如:


https://msdn.microsoft.com/zh-cn/subscriptions/downloads/#FileId=72964


左下角可以看到“产品系列”,检查元素可以发现 FamilyId 为 701


填入到下面的链接并打开:


https://msdn.microsoft.com/subscriptions/securedownloads/?#ProductFamilyId=701


就可以看到该系列的全部产品,左侧选框可过滤语言。

xoyozo 7 年前
3,881

官方 Demo

WeUI:https://weui.io/

weui.js:https://weui.io/weui.js/


开发文档

WeUI:https://github.com/Tencent/weui/wiki

weui.js:https://github.com/Tencent/weui.js/blob/master/docs/README.md

WeUI for 小程序:https://github.com/Tencent/weui-wxss


引入

① <head /> 中加入:

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0" />

② 引用样式:(请更改地址中的版本号,参开发文档

<link href="https://res.wx.qq.com/t/wx_fed/weui-source/res/2.5.16/weui.min.css" rel="stylesheet" />

③ (可选)引用脚本:(请将下方链接中的版本号替换为最新)

<script src="https://res.wx.qq.com/t/wx_fed/weui.js/res/1.2.17/weui.min.js"></script>


经验

  • 搜索框的 <form /> 中不加 action 则键盘中显示灰色“换行”键,加入 action 则键盘中显示蓝色“搜索”键

xoyozo 8 年前
7,165