با سلام خدمت همراهان همیشگی پرنیان طرح
در مباحث قبلی اشاره شد که php یک زبان برنامه نویسی سمت سرور است.
این ویژگی php باعث شده تا تمام کدهایی که با این زبان می نویسید ، روی سرور پردازش و نتیجه گیری شوند.
در این صورت ، بارگذاری یا Upload یک فایل روی سرور، با استفاده از این زبان کار بسیار راحتی خواهد بود.
در ادامه سری آموزش های حرفه ای برنامه نویسی php، امروز درباره نحوه بارگذاری یا Uploadفایل روی سرور صحبت خواهیم کرد.
همره پرنیان باشید.
پیکربندی فایل php.ini
قبل از هر چیز، باید اطمینان حاصل کنید که آیا php برای اجازه دادن به آپلود فایل ها، پیکربندی شده است یا نه.
در فایل php.ini خود ، دستور file_uploads را جستجو کنید.
و آن را روی مقدار زیر تنظیم کنید:
file_uploads = On
ایجاد فرم Html
در قدم بعدی، یک فرم Html ایجاد می کنیم.
این فرم به کاربران اجازه خواهد داد تا فایل تصویری خود را برای آپلود انتخاب کنند و آن را آپلود کنند:
[php]
برخی از قوانینی که باید در مورد فرم بالا رعایت شود:
اطمینان حاصل کنید که فرم از شما از متد post برای ارسال اطلاعات استفاده می کند.
فرم به ویژگی زیر نیاز دارد:
enctype=”multipart/form-data
این گزینه مشخص کننده نوع محتوای مورد استفاده درهنگام ارسال اطلاعات است.
بدون رعایت الزامات فوق، فرم مورد نظر آپلود نخواهد شد.
چیزهای دیگری که باید به آن توجه داشته باشید:
صفت “type=”file در تگ <input> فیلد ورودی را به عنوان یک کنترل انتخاب فایل، به همراه یک دکمه browse در کنار کنترل ورودی نمایش می دهد.
فرم بالا ، اطلاعاتی دریافتی را به فایلی با نام upload.php که بعدا ایجاد خواهیم کرد، می فرستد.
ایجاد یک فایل آپلود با کدهای php
فایل upload.php ، شامل کدهایی برای آپلود کردن فایل است:
[php]
<?php
$target_dir = “uploads/”;
$target_file = $target_dir . basename($_FILES[“fileToUpload”][“name”]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
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;
}
}
?>
[/php]
توضیحات متن بالا
$target_dir = “uploads/”
چک کردن اینکه آیا فایل از قبل وجود دارد ؟
حالا می توانیم برای آپلود فایل در فرم ، محدودیت هایی تعیین کنیم.
ابتدا چک میکنیم که آیا فایلی که کاربر قصد آپلود کردن آن را دارد، از قبل در پوشه آپلود ها وجود دارد یا نه؟
به عبارت دیگر از تکرار یک تصویر جلوگیری میکنیم.
اگر تصویر در پوشه موجود باشد، یک پیغام خطا برای کاربر نمایش داده می شود.
همچنین مقدار متغیر uploadOk$ برابر با 0 خواهد شد.
[php]
// Check if file already exists
if (file_exists($target_file)) {
echo “Sorry, file already exists.”;
$uploadOk = 0;
}
[/php]
محدودیت اندازه فایل
فیلدی که قرار است فایل ورودی را دریافت کند،در فرم مثال بالا، fileToUpload نامگذاری شده است.
حالا میخواهیم سایز یا اندازه فایلی که کاربر قصد آپلود کردن آن را دارد، محدود کنیم.
اگر حجم فایل از 500کیلوبایت بیشتر بود، یک پیغام خطا نمایش داده می شود و مقدار متغیرuploadOk$ با 0 برابر می شود.
[php]
// Check file size
if ($_FILES[“fileToUpload”][“size”] > 500000) {
echo “Sorry, your file is too large.”;
$uploadOk = 0;
}
[/php]
محدودیت نوع فایل
مثال زیر تعیین می کند که کاربر تنها می تواند فایل هایی با پسوند های JPG, JPEG, PNG, وGIF را بارگذاری کند.
در این حالت ، انتخاب تصویر با هر پسوند دیگر باعث نمایش پیغام خطا قبل از مقداردهی متغیرuploadOk$ با 0 می شود.
[php]
// Allow certain file formats
if($imageFileType != “jpg” && $imageFileType != “png” && $imageFileType != “jpeg”
&& $imageFileType != “gif” ) {
echo “Sorry, only JPG, JPEG, PNG & GIF files are allowed.”;
$uploadOk = 0;
}
[/php]
تنطیمات و محدودیت های فرم ها به پایاین رسید.
شما می توانید اسکریپت کامل فرم ساخته شده ، به همراه محدودیت های ایجاد شده را در این لینک مشاهده کنید.
اگر این مطلب برای شما مفید بود، ما را در گوگل ستاره باران کنید.