You'd better check $_FILES structure and values throughly. The following code cannot cause any errors absolutely. Example: <?php header('Content-Type: text/plain; charset=utf-8'); try { // Undefined | Multiple Files | $_FILES Corruption Attack // If this request falls under any of them, treat it invalid. if ( !isset($_FILES['upfile']['error']) || is_array($_FILES['upfile']['error']) ) { throw new
![PHP: ファイルアップロードの処理 - Manual](https://cdn-ak-scissors.b.st-hatena.com/image/square/4dd02c2555ca1b32548779e23dc3e33a9f46bf13/height=288;version=1;width=512/https%3A%2F%2Fwww.php.net%2Fimages%2Fmeta-image.png)