2026.04.07
画像ファイルのアップロードテストでテスト用データの準備が困難
画像アップロード機能のテストにバリデーション確認はつきものですが、
アップロード可能な画像解像度サイズが小さい場合に
ファイルサイズのバリデーション上限を確認可能な画像ファイルを作成するのは手動では非常に困難です
例:「縦200pix × 横400pix」の画像のみアップロード可能で
ファイルサイズの上限「10MB」以上の画像がアップロードされた場合にエラーメッセージを出す
メタデータで画像のファイルサイズをかさ増しする
メタデータを埋め込んで画像ファイルをかさ増しする方法は以前から知っていましたが
バリデーション確認のような数MBのサイズに調整するには大量のメタデータが必要となり、手動ではほぼ不可能です
解決策
メタデータ編集ツール「exiftool」を使用してコマンドを実行することでこの問題を解決
必要なもの ・画像編集ソフト(解像度サイズを指定して画像ファイルを作成できるもの)
・「exiftool」の実行ファイル(exiftool.exe)と「exiftool_files」フォルダ
※上記2点とも検索すれば見つかるものなので説明を割愛します
作成手順
①画像編集ソフトでテストする解像度サイズの画像を作成(例:200×400.png)
※「jpeg」や「gif」など他種の画像ファイルでも可能
② 画像を「右クリック+プロパティ」で元の ファイルサイズを確認

③目指すファイルサイズから元画像のファイルサイズをマイナスして画像に追加するサイズを算出(単位はバイト)
例:10,485,760(10MB)マイナス 2,783=10,482,977
任意のフォルダにexiftoolの実行ファイル「exiftool.exe」と 「exiftool_files」フォルダ を置く
※exiftoolのサイトからダウンロードしたファイルの中にある
「exiftool(-k).exe」を「exiftool.exe」にリネームする

④exiftoolの実行ファイルがあるフォルダにサイズを増やしたい画像ファイルを置く

⑤exiftoolの実行ファイルがあるフォルダをマウスオーバーして「shift+右クリック」でコンテキストメニューを表示
⑥「PowerShell ウィンドウをここで開く」を選択するとコマンドを実行する階層が PowerShell で表示される

⑦コマンド入力でダミーデータを作成する(1行ずつ入力)
※半角英数字(Aなど)が1文字1バイトのため、そこに先ほど計算した数値を乗算する
次のコードでそれを「dummy.txt」に書き込む
$chars = “A” * 10482977
Set-Content -Path dummy.txt -Value $chars

⑧コマンド入力でexiftoolを使用して画像ファイルにダミーデータを埋め込む
./exiftool.exe -overwrite_original “-Comment<=dummy.txt ” 200×400.png

⑨「1 image files updated」と表示され、目標に近い画像データが完成する

⑩さらに目標に近づけたい場合は「 $chars = “A” * 10482977 」の数値を調整してダミーファイルのサイズを変更する
※ダミーデータ追記ではなく上書きなので「$chars = “A” * 0」で元画像にあるメタデータを消去後に
元画像のファイルサイズを確認したほうがより正確になる