PHPでデータベース(MySQL)のデータを自動バックアップ
データベースのバックアップを取りたい時、毎回管理ツールからダウンロードボタンを押しても可…
画像データ等をサーバーにアップロードする際、一点づつアップロードしても良いけれど、ファイル数が多くなると時間がかかる上に面倒なので、zipファイルを使ってアップロードした際の方法をメモ。
<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>
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);
}
}
}
}
}