آپلود فایل زیپ در PHP
آپلود فایلها یکی از ویژگیهای مهم هر وبسایت مدرن است. به خصوص، آپلود فایلهای زیپ، که میتوانند شامل چندین فایل و پوشه باشند، به کاربران اجازه میدهد تا به راحتی دادههای خود را منتقل کنند. در اینجا، مراحل و نکات کلیدی برای آپلود فایلهای زیپ در PHP را بررسی خواهیم کرد.
۱. ایجاد فرم HTML
ابتدا باید یک فرم HTML ساده برای انتخاب و آپلود فایل ایجاد کنیم. این فرم باید شامل نوع ورودی `file` باشد و ویژگی `enctype` به `multipart/form-data` تنظیم شود.
```html
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="zipFile" accept=".zip" required>
<input type="submit" value="آپلود فایل">
</form>
```
۲. پردازش فایل در PHP
در فایل `upload.php`، باید فایل ارسالی را پردازش کنیم. ابتدا اطمینان حاصل میکنیم که فایل یک فایل زیپ است و سپس آن را در یک پوشه مشخص ذخیره میکنیم.
```php
<?php
$targetDir = "uploads/";
$targetFile = $targetDir . basename($_FILES["zipFile"]["name"]);
$fileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
if ($fileType != "zip") {
echo "فقط فایلهای زیپ مجاز هستند.";
exit;
}
if (move_uploaded_file($_FILES["zipFile"]["tmp_name"], $targetFile)) {
echo "فایل ". htmlspecialchars(basename($_FILES["zipFile"]["name"])). " با موفقیت آپلود شد.";
} else {
echo "خطا در آپلود فایل.";
}
?>
```
۳. امنیت و اعتبارسنجی
هنگام آپلود فایلها، امنیت بسیار مهم است. برای جلوگیری از بارگذاری فایلهای مخرب، اعتبارسنجیهای اضافی باید انجام شود. میتوانید از توابع PHP مانند `mime_content_type()` برای بررسی نوع واقعی فایل استفاده کنید.
۴. استخراج فایلهای زیپ
پس از آپلود موفقیتآمیز، میتوانید از کتابخانه `ZipArchive` برای استخراج محتوای فایلهای زیپ استفاده کنید.
```php
$zip = new ZipArchive;
if ($zip->open($targetFile) === TRUE) {
$zip->extractTo($targetDir);
$zip->close();
echo "فایلهای زیپ با موفقیت استخراج شدند.";
} else {
echo "خطا در استخراج فایلهای زیپ.";
}
```
نتیجهگیری
آپلود و پردازش فایلهای زیپ در PHP میتواند یک فرآیند ساده باشد اگر مراحل و نکات امنیتی را رعایت کنید. با استفاده از کدهای بالا، میتوانید این قابلیت را در وبسایت خود پیادهسازی کنید و به کاربران امکان دهید تا به راحتی فایلهای خود را آپلود کنند.