UPLOAD_ERR_PARTIALのシミュレーション
UPLOAD_ERR_PARTIAL を発生させる手順のメモ。
ファイルアップロードの途中でTCPセッションが切れた場合などにこれになる。
モバイル端末など、細い回線で発生しやすい。
このエラーを再現させるには、Content-Length に満たない multipart なリクエストを送り、途中で切断すればよい。
これで「ファイルの送信中に回線切れ」のような状況を作れる。
ncでできる。
$ nc <ipaddr> 80 POST /recvFile.php HTTP/1.1 Host: www.example.com Content-Length: 500000 Content-Type: multipart/form-data; boundary=---------------------------12345 -----------------------------12345 Content-Disposition: form-data; name="img1"; filename="hoge.jpg" Content-Type: image/jpeg aaa ### ここで Ctrl+C で nc を止める(切断) すると、UPLOAD_ERR_PARTIAL が発生する
recvFile.php
<?php $line = var_export($_FILES, true) . "\n"; $logfile = __DIR__ . '/test.log'; error_log($line, 3, $logfile);