コンテンツにスキップ

📁 テストファイル一覧

アップロード機能の検証・境界値テスト・エラーハンドリング確認用のダミーファイルを配布しています。 すべて完全無料・登録不要。ハッシュ値(MD5 / SHA-256)と curl / wget / PowerShell のダウンロードコマンドも記載しています。

フォーマット別

用途別

📌 すべてのテストファイルに付属

  • ✅ バイト単位で正確なサイズ保証
  • ✅ MD5 / SHA-256 ハッシュ値記載
  • ✅ curl / wget / PowerShell コマンド例
  • ✅ 直リンク配布(CDN 経由 / 高速DL)

関連リファレンス

📖 つまずきやすいポイント

アップロード上限やファイル処理の検証に使う、中身が既知のダミーファイルです。登録不要でそのままダウンロードでき、MD5 / SHA-256 と curl コマンドを併記しています。ただし「このファイルが通った」ことは「壊れない」ことの証明にはなりません。ここで確かめられるのはサイズと形式の扱いまでで、拡張子偽装・ZIP 爆弾・不正な内部構造への耐性は別に検証が要ります。

ケース 何が起きるか どうする
10 MB のはずが 10 MB で届かない multipart/form-data は境界文字列とヘッダを足すのでリクエストは数百バイト大きくなります。JSON に base64 で埋めた場合は約 33% 膨らみます 境界を試すなら しきい値ファイル の 9.9 / 10.0 / 10.1 MB を使ってください。base64 を通すなら実効上限は約 3/4 と見積もります。
ブラウザでは通るのにサーバーで弾かれる 上限は 1 か所ではありません。nginx の client_max_body_size、PHP の upload_max_filesizepost_max_size、そしてアプリ側の検証がそれぞれ独立に効きます。 一番小さい値が実効上限です。post_max_sizeupload_max_filesize 以上に、複数ファイルなら合計を見込んで設定します。
拡張子で判定していて偽装を通す .png にリネームしただけの実行ファイルは、拡張子検査も Content-Type 検査も素通りします。どちらも送信側が自由に名乗れる値だからです。 先頭バイト (マジックバイト) で判定します。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まとめて上げます。1 つだけ上げても一番短いところで切れます。
壊れたファイルが来る前提になっていない 通信の切断や転送エラーで、途中で切れたファイルやヘッダの壊れたファイルは実運用で普通に届きます。多くの実装はそこで例外を投げたまま握りつぶします。 壊れたファイルを先に流し込んで、利用者に届くエラーメッセージになっているかまで確認します。

ここのファイルが全部通っても、ウイルススキャンの結果、同時アップロード時のディスク枯渇、オブジェクトストレージ側の上限は別の話です。「上限まで受け取れる」ことと「受け取ってよい」ことは違います。