آپلود فایل در PHP
آپلود فایل در PHP فرآیندی است که به شما امکان میدهد فایلهایی را از سیستم محلی به سرور منتقل کنید. برای شروع، شما نیاز به یک فرم HTML برای انتخاب فایل دارید.
```html
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload File" name="submit">
</form>
```
سپس در فایل `upload.php`، شما میتوانید به پردازش فایل بپردازید. این شامل بررسی نوع فایل، حجم و همچنین حرکت فایل به دایرکتوری مناسب است.
```php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// بررسی نوع فایل
if (isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if ($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// بررسی وجود فایل
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// در صورتی که همه چیز خوب باشد، فایل منتقل میشود
if ($uploadOk == 1) {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file " . htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
}
```
دانلود فایل ZIP در PHP
برای دانلود فایل ZIP، ابتدا باید فایلها را فشرده کنید. میتوانید از کلاس `ZipArchive` استفاده کنید تا یک فایل ZIP ایجاد کنید.
```php
$zip = new ZipArchive();
$filename = "files.zip";
if ($zip->open($filename, ZipArchive::CREATE) !== TRUE) {
exit("Cannot open <$filename>\n");
}
$zip->addFile("uploads/file
- jpg", "file1.jpg");
- jpg", "file2.jpg");
```
پس از ایجاد فایل ZIP، میتوانید آن را برای دانلود ارائه دهید:
```php
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
header('Content-Length: ' . filesize($filename));
readfile($filename);
```
نکات مهم
- امنیت: همیشه ورودیها را بررسی کنید.
- مدیریت خطا: مطمئن شوید که خطاها به درستی مدیریت میشوند.
- حجم فایل: محدودیتهایی برای حجم فایل آپلودی در PHP وجود دارد که باید بررسی شوند.
با دنبال کردن این مراحل، شما میتوانید فرآیند آپلود و دانلود فایل ZIP را به سادگی انجام دهید.
آپلود فایل در PHP
آپلود فایل در PHP یک فرآیند نسبتاً ساده است، اما نیاز به رعایت نکات امنیتی و کدنویسی مناسب دارد. برای این کار، ابتدا باید فرم HTML برای آپلود فایل بسازید. این فرم باید شامل نوع `enctype="multipart/form-data"` باشد تا بتوانید فایلها را به سرور ارسال کنید.
```html
<form action="upload.php" method="post" enctype="multipart/form-data">
انتخاب فایل: <input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="آپلود فایل" name="submit">
</form>
```
سپس در فایل `upload.php`، میتوانید کد زیر را برای پردازش فایل آپلود شده بنویسید:
```php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$fileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// بررسی اینکه آیا فایل واقعی است یا خیر
if (isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if ($check !== false) {
echo "این فایل یک تصویر است - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "این فایل یک تصویر نیست.";
$uploadOk = 0;
}
}
// بررسی نوع فایل
if ($fileType != "jpg" && $fileType != "png" && $fileType != "jpeg"
&& $fileType != "gif") {
echo "متاسفانه فقط فایلهای تصویری قابل آپلود هستند.";
$uploadOk = 0;
}
// بررسی اینکه آیا $uploadOk برابر 0 است یا خیر
if ($uploadOk == 0) {
echo "متاسفانه فایل شما آپلود نشد.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "فایل ". htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " با موفقیت آپلود شد.";
} else {
echo "خطا در آپلود فایل.";
}
}
}
?>
```
دانلود فایل ZIP
برای دانلود فایل ZIP، ابتدا باید فایلهای مورد نظر را فشرده کنید. میتوانید از کلاس `ZipArchive` در PHP استفاده کنید. در زیر نمونه کدی برای ایجاد و دانلود فایل ZIP آورده شده است:
```php
<?php
$zip = new ZipArchive();
$filename = "my_files.zip";
if ($zip->open($filename, ZipArchive::CREATE) !== TRUE) {
exit("نمیتوان فایل ZIP را ایجاد کرد");
}
// اضافه کردن فایلها به ZIP
$zip->addFile("uploads/file
- jpg");
- jpg");
$zip->close();
// تنظیم هدرها برای دانلود
header("Content-Type: application/zip");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Length: " . filesize($filename));
readfile($filename);
?>
```
نکات امنیتی
در هنگام آپلود و دانلود فایلها، حتماً به نکات امنیتی توجه کنید. بررسی نوع فایل، محدود کردن اندازه فایل و استفاده از نامهای تصادفی برای فایلها میتواند از مشکلات امنیتی جلوگیری کند. همچنین، از مجوزهای مناسب برای پوشههای آپلود استفاده کنید تا از دسترسی غیرمجاز جلوگیری شود.
به یاد داشته باشید که این کدها تنها مبنای اولیه هستند و باید بر اساس نیازها و شرایط خاص پروژه شما تنظیم و بهینهسازی شوند.