不用 Photoshop 去除图片背景 — 免费浏览器工具
不用 Photoshop 也能让图像背景透明的三种方法对比:免费浏览器工具、AI 服务与 GIMP 的取舍,以及常见失败的规避办法。
发布对开发、测试与运维有帮助的技术文章。
不用 Photoshop 也能让图像背景透明的三种方法对比:免费浏览器工具、AI 服务与 GIMP 的取舍,以及常见失败的规避办法。
对比 PNG / JPEG / WebP / AVIF 的特点、用途与浏览器支持,并讲解如何用 picture 元素按条件分发。
讲解 Whois 查询究竟能看到什么(注册人、到期日、注册商、NS),GDPR 如何改变了结果,以及日常该怎么用。
讲解开发中真正会遇到的 HTTP 状态码(200 / 301 / 403 / 404 / 413 / 422 / 429 / 500 / 502 / 504)的含义、成因与应对。
讲解如何把 Chrome DevTools 的 Copy as cURL 转换为 fetch / axios / Python requests / PHP / Go,并附主要选项的对应表。
讲解 Cookie 的 Secure / HttpOnly / SameSite / __Host- 前缀与 4096 字节限制,以及它们分别能挡住 CSRF、XSS 与会话劫持中的哪一类。
讲解 JWT 的六类典型漏洞(alg none、密钥混淆、永不过期、载荷含机密、无法吊销、弱密钥)及其应对措施。
Excel 打开 CSV 出现乱码的原因与解决办法:如何生成带 BOM 的 UTF-8 CSV、导入步骤,以及 PHP 与 Python 的输出代码示例。
讲解 Nginx 中 client_max_body_size 的默认值(1m)、设置位置、如何导致 413,以及它与 PHP 的 upload_max_filesize 的关系。
讲解 AWS S3 的上限(单次 PUT 5GB、分段上传 5TB)、CloudFront 的 body 限制与 API Gateway 的 10MB 上限,以及规避办法。
用 fetch 与 axios 实现文件上传:FormData 的用法、进度条、分片上传、错误处理,以及 CORS 配置的要点。
Laravel 的上传实现:Request::file()、用 mimes / max 做校验、通过 Storage::disk()->put() 保存,以及 S3 驱动配置。
讲解 PHP 的文件上传:$_FILES 的结构、UPLOAD_ERR 错误码、用 finfo 做 MIME 校验、扩展名白名单,以及安全的保存位置。
对比 S3、GCS、Azure Blob、Cloudflare R2、Backblaze B2 等 10 家的上传上限、免费额度与月费,并给出按用途的选择标准。
Docker 下的 PHP 上传配置:php.ini 中的 upload_max_filesize / post_max_size、Nginx 与 PHP-FPM 的 compose 示例,以及验证方法。
Next.js App Router 中的文件上传:Form Action、在 route.ts 中处理 formData、保存到 Vercel Blob、上传到 S3 以及进度显示。
面向生产环境的文件上传检查清单:大小校验、用 finfo 做 MIME 校验、扩展名白名单、魔术字节检查,以及安全的保存位置。
完整讲解 Django 的 FileField / ImageField、forms.py 中的校验、settings.py 的 MEDIA_ROOT / MEDIA_URL 设置,以及通过 django-storages 接入 S3。
Rails 中用 Active Storage 上传:安装配置、has_one_attached / has_many_attached、校验、S3 设置,以及 Variant 图像缩放。
Go 的文件上传:用 net/http 接收 multipart、r.FormFile()、大小限制、MIME 校验,以及用 AWS SDK v2 上传到 S3。
Vercel 上的上传:Function 的 4.5MB bodySize 上限、vercel.json 配置、Vercel Blob 的用法,以及直传 S3 的规避方案。
Netlify 上的上传:Functions 的 6MB body 上限、netlify.toml 配置、multipart/form-data 的解析,以及 Large Media 的替代方案。
Render 上的上传:持久化 Disk 的配置、PHP 的 upload_max_filesize 设置、用环境变量接入 S3,以及 Blueprint 的写法示例。
上传上限为何难以测试,以及使用 9.9MB / 10MB / 10.1MB 阈值文件进行边界值测试的实操步骤。
413 错误的成因与解决方法:Nginx 的 client_max_body_size、PHP 的 upload_max_filesize / post_max_size 设置与排查步骤。
讲解 422 与 400 的区别、Laravel / Django / Rails 中 422 的用法、上传场景下的 422,以及 RFC 7807 的响应格式。
507 错误的成因与处理:用 df / du 检查磁盘用量、用 logrotate 控制日志膨胀,以及云存储的容量限制。
对比 PNG、WebP、AVIF 的画质、文件体积、浏览器支持与编码速度,并给出优化加载时的明确选择标准。
Excel 打开 CSV 乱码的原因与解决:Shift_JIS、UTF-8 与带 BOM 的 UTF-8 有何区别,以及 Python 与 PHP 的编码转换实现示例。
提升 WordPress 默认 2MB 上传上限的五种方法:wp-config.php、.htaccess、php.ini、functions.php 与主机控制面板。
PNG、JPEG、PDF、ZIP、CSV、JSON 的规格、魔术字节、MIME 类型与最大尺寸速查表,便于编写校验逻辑。
讲解 MB 与 MiB 的区别:PHP 与 Nginx 如何解释单位、Windows 与 macOS 显示为何不同,以及对边界值测试的影响。
讲解 HTML 表单中 multipart/form-data 那 200〜400 字节开销的构成与计算方法,以及它对上限设置的影响。
Base64 为何会把体积增大约 33%(3 字节变 4 字符),以及它在 API 传输、邮件附件与 data URI 中的影响与精确计算方法。
从 Deflate 的原理讲清:为什么文本与 CSV 能压缩 60〜85%,而 JPEG 与 MP4 几乎压不动,以及何时该用 Store 模式。