آپلود فایل در PHP

php file upload guide
20 آبان 1403

آیا تا به حال به دنبال روشی ساده برای آپلود فایل‌ها در PHP بودید؟ خب، شما جای درستی حاضر شده‌اید. آپلود فایل در PHP یکی از قابلیت‌های بسیار پرکاربرد و در عین حال ساده است که در بسیاری از پروژه‌های کاربردی مورد استفاده قرار می‌گیرد. این فرآیند به شما این امکان را می‌دهد که تصاویر، اسناد و دیگر انواع فایل‌ها را به سرور ارسال کنید و مدیریت کنید. در اینجا می‌خواهیم نگاهی به روش‌های آپلود فایل‌ها در PHP داشته باشیم و به صورت گام به گام این فرآیند را بررسی کنیم.

برای شروع، اولین قدم این است که یک فرم HTML ایجاد کنیم که امکان انتخاب فایل از طریق کاربر را فراهم کند. این فرم به شما کمک می‌کند تا فایل مورد نظر را انتخاب کرده و به صورت POST به سرور ارسال کنید.

در مرحله بعد، باید دو نکته مهم را در نظر بگیرید: اول، باید فرم HTML شما شامل "enctype" برابر با "multipart/form-data" باشد. دوم، باید یک ورودی از نوع "file" در فرم شما وجود داشته باشد تا کاربر بتواند فایل های مورد نظر خود را انتخاب کند.

حال نوبت نوشتن کد PHP می‌رسد که می‌تواند فایل را دریافت کرده و ذخیره کند. با توجه به متغیر سوپرجکت $_FILES، می‌توانید به راحتی اطلاعات مربوط به فایل ارسال شده را دریافت کنید. این عملیات شامل اعتبارسنجی فایل، تعیین مسیر ذخیره‌سازی و در نهایت حرکت فایل به مقصد مورد نظر می‌باشد.

نمونه کد آپلود فایل در PHP


<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file">انتخاب فایل:</label>
<input type="file" name="file" id="file"><br><br>
<input type="submit" value="آپلود فایل" name="submit">
</form>

if (isset($_POST['submit'])) {
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "فایل شما با موفقیت آپلود شد.";
} else {
echo "متاسفیم، آپلود فایل دچار خطا شد.";
}
}

توضیح خط به خط کد PHP

if (isset($_POST['submit'])) {
بررسی می‌کند که آیا فرم ارسال شده است.
$target_dir = "uploads/";
مسیر پوشه‌ای که فایل در آن ذخیره خواهد شد تعیین می‌شود.
$target_file = $target_dir . basename($_FILES["file"]["name"]);
مسیر کامل فایل برای ذخیره‌سازی ایجاد می‌شود.
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
فایل موقت به مسیر هدف منتقل می‌شود.
echo "فایل شما با موفقیت آپلود شد.";
در صورت موفقیت‌آمیز بودن آپلود، پیام مناسبی نمایش داده می‌شود.
} else {
در صورت عدم موفقیت، به بلوک خطا انتقال می‌یابد.
echo "متاسفیم، آپلود فایل دچار خطا شد.";
پیام خطای عمومی نمایش داده می‌شود.

سوالات متداول

؟

چگونه می‌توان فایل‌ها را در PHP آپلود کرد؟

؟

چگونه می‌توان امنیت آپلود فایل را در PHP افزایش داد؟