Hôm nay mình xin chia sẻ 1 ứng dụng nhỏ trong PHP dùng để upload dữ liệu lên host.Khi file zip được upload lên , chương trình sẽ tự động tạo một folder cùng tên với file zip và rồi nó sẽ đếm số lượng files và folder có trong file zip ,sau đó giải nén tất cả vào ngay bên trong folder mới vừa tạo này.
Demo : http://data.svtinhoc.esy.es/Bạn tạo 1 file đặt tên là index.php copy toàn bộ HTML ở dưới past vào đó:
<div class="box">Bạn tạo 1 file có tên upload.php cpoy toàn bộ code dưới đây bỏ vào trong đó:
<div class="heading">Upload File and Unzip</div>
<div class="form_field">
<form enctype="multipart/form-data" method="post" action="upload.php">
<label>Upload Zip File: </label> <input type="file" name="zip_file">
<br><br>
<input type="submit" name="submit" value="Upload" class="upload"> <br><br>
</form>
</div>
</div>
<?php
function recursive_dir($dir) {
foreach(scandir($dir) as $file) {
if ('.' === $file || '..' === $file) continue;
if (is_dir("$dir/$file")) recursive_dir("$dir/$file");
else unlink("$dir/$file");
}
rmdir($dir);
}
if($_FILES["zip_file"]["name"]) {
$filename = $_FILES["zip_file"]["name"];
$source = $_FILES["zip_file"]["tmp_name"];
$type = $_FILES["zip_file"]["type"];
$name = explode(".", $filename);
$accepted_types = array('application/zip', 'application/x-zip-compressed',
'multipart/x-zip', 'application/x-compressed');
foreach($accepted_types as $mime_type) {
if($mime_type == $type) {
$okay = true;
break;
}
}
// kiem tra xem file upload len co phai la file zip khong
$continue = strtolower($name[1]) == 'zip' ? true : false;
if(!$continue) {
$myMsg = "Please upload a valid .zip file.";
}
/* PHP current path */
$path = dirname(__FILE__).'/';
$filenoext = basename ($filename, '.zip');
$filenoext = basename ($filenoext, '.ZIP');
$myDir = $path . $filenoext; // target directory
$myFile = $path . $filename; // target zip file
if (is_dir($myDir)) recursive_dir ( $myDir);
mkdir($myDir, 0777);
if(move_uploaded_file($source, $myFile)) {
$zip = new ZipArchive();
$x = $zip->open($myFile); // open the zip file to extract
if ($x === true) {
$zip->extractTo($myDir); // place in the directory with same name
$zip->close();
unlink($myFile);
}
echo $myMsg = "Your .zip file uploaded and unziped.";
} else {
echo $myMsg = "There was a problem with the upload.";
}
}
?>
Các bạn upload lên thư mục của host .Khuyên bạn này tạo 1 foldel trên host và upload 2 file này lên.
Chúc bạn thành công !
0 comments:
Post a Comment