事象
ブラウザのFormからサーバーにアップロードされたファイルを確認すると、時々0バイトのファイルが存在する。
必ず0バイトになるわけではなく、正しくアップロードされることの方が多い。
ログを確認しても何らかのエラーが発生している様子はない。
ディスク容量は十分にある。
事象発生時のファイル名や拡張子、時間帯、元のファイルのサイズに共通点はない。
原因
iOSのバグ(14.6にて確認)。
ブラウザでファイルを選択した後、他のアプリを起動してブラウザをバックグラウンドにする、あるいはスマホをスリープさせるなどして、それからブラウザを再度表示してアップロードすると、iOSの機嫌次第で発生する(SafariでもChromeでも再現)。
おそらく、ブラウザがメモリから一時的に追い出されて復帰したときに起こるのであろう。
対策
サーバー側でファイルサイズ0バイトのチェックを行う。
Apple製品は作り込みが甘くてこういう厄介な問題を起こしがちなのが嫌なんだよなー。