کاربران آنلاین : 3935

پی اچ پی این امکان را به شما می‌دهد که یک فایل را در سرور خود آپلود کنید.برای این که کاربران بتوانند یک فایل را در سرور شما آپلود نمایند ساده ترین کار ایجاد یک فرم بارگذاری فایل است.

ساختن یک فرم برای آپلود فایل

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک فرم به سایت شما این امکان را می‌دهد که کاربران به خیلی ساده یک فایل را آپلود نمایند. در مثال زیر کد نویسی یک فرم HTML را برای آپلود فایل در PHP مشاهده می‌کنید.

<html>
<body>
 
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
 
</body>
</html>

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک نکات موجود در فرم HTML بالا:

  • مشخصه enctype در برچسب فرم بیان کننده نوع محتوای فایلی است که می‌خواهد آپلود شود.
  • multipart/form-data زمانی استفاده می‌شود که فایلی که می‌خواهد آپلود شود از جنس داده های باینری باشد.
  • مشخصه “type=”file در برچسب input زمانی استفاده می‌شود که ورودی به عنوان یک فایل پردازش شود. در حقیقت مسئول پردازش فرم است.

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک در نظر داشته باشید که بارگذاری فایل از طرف کاربران در سرور کاری پر خطر است. تنها به کاربرانی مطمئن اجزا آپلود یک فایل در PHP را بدهید.

ساختن اسکریپت هایی برای آپلود فایل در PHP

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک فایلی که در دستور HTML ساختیم به نام “upload_file.php” است. این فایل شامل کد هایی برای آپلود فایل در PHP است. این کد ها به صورت زیر است:

<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک در مثال بالا کد PHP به صورت شرطی نوشته است که اگر متغیر گلوبال file_$ دارای خطا بود، نمایش دهد که خطا وجود دارد و اطلاعات دیگر را نمایش ندهد در غیر این صورت یعنی اگر متغیر هیچ خطایی را شامل در بر نداشت، نام فایل، نوع فایل، سایز وکپی نام فایلی که به صورت موقتی در سرور ذخیره شده است را نمایش می‌دهد.

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک پارامترهایی که در ورودی فایل استفاده می‌شود به صورت زیر است:

  • نام فایلی که آپلود شده است: $_FILES[“file”][“name”]
  • نوع فایلی که آپلود شده است:$_FILES[“file”][“type”]
  • سایز فایلی که آپلود شده است :$_FILES[“file”][“size”]
  • کپی نام فایلی که به صورت موقتی در سرور ذخیره شده است:$_FILES[“file”][“tmp_name”]

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک این یک روش ساده برای آپلود یک فایل در PHP است. اما ب دلایل امنیتی باید محدودیت هایی برای فایلی هایی که کاربران مجاز به بارگذاری هستند قرار دهید.

محدودیت آپلود فایل در PHP

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک در این اسکریپت ها یک سری محدودیت ها برای آپلود فایل ها قرار می‌دهیم. در این مثال تنها فایلی هایی با فرمت های .gif .jpeg و . png و حداکثر تا ۲۰ کیلو بایت می‌توان آپلود کرد.

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo "Invalid file";
}
?>

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک در این دستور یک آرایه تعریف شده است که اگر فایلی که می‌خواهیم بارگذاری شود باید یکی از این فرمت ها را دارا باشد و سایز این فایل کمتر از ۲۰۰۰۰ هزار بایت باشد و در آخر if اول نوشته شده است” و اگر پسوند فایل در آرایه جزو پسوندهای معرفی شده باشد شرط زیر را بررسی کن”

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک extension یک متغییری به نام Temp تعریف کرده است و آخرین temp مورد نظرش است(فرمت فایل). متغیر temp می‌گوید اگر نام فایل دارای چندین آرایه بود آن را با علامت” . ” از هم جدا کن. در حقیقت آخرین آرایه بعد از نقطه همان فرمت فایل می‌شود.

ذخیره کردن فایل آپلود شده

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک هنگامی که اسکریپت ها به پایان رسیدند یک کپی به صورت موقت از فایل نمایان می‌شود. برای این که فایل آپلود شده را ذخیره کنیم نیاز داریم آن را در یک جای دیگر کپی کنیم. به مثال زیر دقت کنید:

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
 
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "Invalid file";
}
?>

آپلود فایل در PHP-ایرناک آپلود فایل در PHP-ایرناک مثال قبل همان مثال بالاست با این تفاوت که می‌خواهیم آن را ذخیره کنیم. اگر فایل وجود داشت نمایش بده که فایل وجود دارد و اگر وحود نداشت یک کپی از آن را ذخیره کن و نام آن را آپلود بساز.


منابع : W3schools/mobtadi/stackoverfollow

(1 رای)
بازدید : 77 بار

نوشتن نظرات

توجه : ارسال پیام های توهین آمیز به هر شکل و با هر ادبیاتی دور از فرهنگ ایرانی ما است لذا از ارسال اینگونه پیام ها جدا خودداری فرمایید.


تصویر امنیتی