ارسال فایل (آپلود فایل) در php

ناصر نادری | 1394/02/27


بنام خدا.

یکی از توانایی های پروتکل  HTTP که وب بر اساس اون کار میکنه  ارسال فایل به سرور یا همون file upload هست که در تمامی زبانهای سمت سرور امکاناتی براش گذاشته شده .  در php هم به کمک ابزارهای فرم html  امکان آپلود فایل به دایرکتوری مورد نظر روی سرور وجود داره .

هر فایلی که آپلود میشه ابتدا در مسیر temporary روت سرور قرار میگیره و بعد از اونجا به مسیری که شما تعیین میکنید منتقل میشه .

نکته : مسیر پیش فرض temporary رو میتونید در فایل php.ini و در متغییر upload_tmp_dir ببینید و تغییر بدید.

نکته : همچنین میتونید اندازه مجاز برای آپلود فایل رو در فایل php.ini و در متغییر upload_max_filesize ببینید و تغییر بدید .

روال کار آپلود فایل به این شکل هست که ابتدا کاربر در داخل یک فرم html و از طریق المنت فرم file که یک نوع المنت input هست فایلی رو از روی کامپیوتر کلاینت انتخاب میکنه و بعد با زدن دکمه ارسال فایل که در فرم قرار دادیم اسکریپت php مربوط  به ارسال فایل اجرا میشه .

محتوی المنت file رو php از طریق یک ارایه دو بعدی به نام FILE_$ میتونه ببینه و استفاده کنه . برای مثال کد زیر رو داخل یک فایل php یا  html در مسیر روت  سرورتون  قرار بدید :

 <html>
<head>
<title>آپلود فایل</title>
</head>
<body>

انتخاب فایل: <br />
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="50" />
<br />
<input type="submit" value="اراسال فایل" />
</form>
</body>
</html> 

نکته : برای ارسال فایل معمولا جهت ایجاد امنیت توی تگ فرم از خاصیت encrypt استفاده میشه تا فایل بصورت رمزنگاری شده ارسال بشه.

php با آرایه FILE_$  میتونه به اطلاعات زیر دسترسی داشته باشه :

  $_FILES['file']['tmp_name']- دسترسی به فایل آپلود  شده در مسیر temporary .

$_FILES['file']['name'] - نام و مسیر فایل انتخاب شده.

$_FILES['file']['size'] - سایز فایل بر اساس بایت.

$_FILES['file']['type'] - نوع فایل.

$_FILES['file']['error'] - خطای مرتبط با فایل که میتونه به لایل مختلف رخ بده. 

حالا توهمون مسیر فایل upload.php رو بصورت زیر ایجاد و کدهارو توش بنویسید :

 <?php
//بررسی اینکه فایل موجود هست یا نه
if( $_FILES['file']['name'] != "" )
{
    copy( $_FILES['file']['name'], "مسیری روی سرور که میخوایید اونجا آپلود بشه" ) or 
    die( "Could not copy file!");
}
else
{
    die("هیچ فایلی یافت نشد!");
}
?>
<html>
<head>
<title>فایل ارسال شد</title>
</head>
<body>
<h2>اطلاعات فایل ارسال شده:</h2>
<ul>
<li>فایل ارسالی: <?php echo $_FILES['file']['name']; ?>
<li>اندازه فایل: <?php echo $_FILES['file']['size']; ?> bytes
<li>نوع فایل: <?php echo $_FILES['file']['type']; ?>
</ul>
</body>
</html> 

در پایان  هم اطلاعات مربوط به فایل چاپ میشه .

تا جلسه بعد در پناه حق....


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید