跳到内容

📁 测试文件列表

提供用于上传功能验证、边界值测试和错误处理验证的虚拟文件。 所有文件均免费且无需注册。还附带 MD5 / SHA-256 哈希值和 curl / wget / PowerShell 下载命令。

按格式

按用途

📌 每个测试文件均附带

  • ✅ 字节级精确大小保证
  • ✅ 提供 MD5 / SHA-256 哈希值
  • ✅ curl / wget / PowerShell 命令示例
  • ✅ 直接链接分发(经 CDN / 高速下载)

相关参考

📖 常见的坑

用于验证上传限制与文件处理的、内容已知的测试文件。无需注册即可直接下载,并附有 MD5 / SHA-256 与 curl 命令。但「这个文件通过了」并不等于「不会出问题」。这里能确认的只是尺寸与格式的处理,对扩展名伪装、ZIP 炸弹、非法内部结构的耐受性需要另行验证。

情形 会发生什么 怎么处理
10 MB 的文件到达时不是 10 MB multipart/form-data 会加上分隔串与头部,请求会大出几百字节。若以 base64 放进 JSON,约膨胀 33% 试探边界时请用阈值文件的 9.9 / 10.0 / 10.1 MB。若经过 base64,实际上限按约 3/4 估算。
浏览器能过,服务器却拒绝 上限不止一处。nginx 的 client_max_body_size、PHP 的 upload_max_filesizepost_max_size,以及应用自身的校验各自独立生效。 最小的那个值就是实际上限。post_max_size 要大于等于 upload_max_filesize,多文件时还要按合计来设。
只看扩展名,伪装文件就能混进来 把可执行文件改名为 .png,扩展名检查和 Content-Type 检查都会放行 —— 这两个值都由发送方随意填写 改用起始字节(magic bytes)判断。PNG 是 89 50 4E 47,PDF 是 25 50 44 46,ZIP 是 50 4B 03 04。完整对照见魔术字节表
大小没超,却超时了 即便没超大小限制,线路慢也需要时间传输。掐断请求的不是大小限制,而是时间限制 把 nginx 的 client_body_timeoutfastcgi_read_timeout 与 PHP 的 max_execution_timemax_input_time 一并调高。只调一个,仍会被最短的那个掐断。
没有假设会收到损坏的文件 连接中断与传输错误会让被截断的文件、头部损坏的文件在生产环境中经常出现。不少实现会在此抛出异常然后悄悄吞掉。 先把损坏文件灌进去,一直确认到用户实际看到的错误提示

即使这里的文件全部通过,病毒扫描结果、并发上传时的磁盘耗尽、对象存储侧的上限仍是另一回事。「能收到上限」和「应该收下」是两件事。