PHPでzipファイルをアップロード後、サーバー内に解凍(展開)
画像データ等をサーバーにアップロードする際、一点づつアップロードしても良いけれど、ファイル数が多くなると時間がかかる上に面倒なので、zipファイルを使ってアップロードした際の方法をメモ。 HTML <form action="upload.php" method="post" enctype="multipart/form-data"> <dl> <dt>画像ファイル[zip形式]</dt> <dd><input type="file" name="newzip"></dd> </dl> <input type="submit" name="submit" value="登録"> </form> upload.php(PHP) if(!empty($_POST['submit'])){ define('error01', '画像ファイルのデータサイズが大きすぎます'); define('error02', '画像ファイルのデータ形式が不適切です'); //エラーチェック if(!empty($_FILES['newzip']['size'])){ $ext = substr($_FILES['newzip']['name'], strrpos($_FILES['newzip']['name'], '.') + 1); if($_FILES['newzip']['size'] > 128000000){ $err_msg['error']['newzip'] = error01; }else if($ext != 'zip'){ $err_msg['error']['newzip'] = error02; } } if(empty($err_msg['error'])){ //ディレクトリの指定 $directory_path = $_SERVER['DOCUMENT_ROOT'].'/upload/'; if($_FILES['newzip']['size'] > 0 ){ $filename = time().'.zip'; $filepath = $directory_path.'/'.$filename; move_uploaded_file($_FILES['newzip']['tmp_name'], $filepath); if (file_exists($filepath)) { $zip = new ZipArchive; if ($zip->open($filepath) === TRUE) { $zip->extractTo($directory_path); $zip->close(); //zipファイルの削除 unlink($filepath); } } } } } フォームからzipファイルをアップロードしサーバ上で解凍したいphp ZIPファイル解凍