با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن و کاربرانی که دوره ی آموزش php 7 را دنبال می کنند.
در جلسه گذشته با آموزش ساخت و نوشتن فایل در php همراه شما بودیم و با نحوه ساخت فایل و نوشتن در درون فایل و نیز باز نوشت php آشنا شدیم. در ادامه با آموزش آپلود فایل در php 7 با نحوه آپلود فایل آشنا می شویم.
با کمک php می توان بسیار ساده و آسان فایل ها را در سرور آپلود کرد.
توجه کنید که هر آسانی ای ممکن است همراه ریسک و خطا باشد. بنابرین همیشه در هنگام آپلود فایل مواظب باشید!
ابتدا اطمینان حاصل کنید که PHP پیکربندی شده است تا اجازه آپلود فایل را فراهم کند.
1 | file_uploads = On |
بعد، یک فرم HTML ایجاد کنید که به کاربران اجازه می دهد فایل تصویری که می خواهند آپلود کنند را انتخاب نمایند:
1 2 3 4 5 6 7 8 9 10 11 12 | <!DOCTYPE html> <html> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form> </body> </html> |
در ادامه برخی از قوانین برای فرم HTML که باید دنبال شوند را مشاهده می نمایید:
بدون دو مورد بالا آپلود فایل صورت نخواهد گرفت.
فایل “upload.php” حاوی کد آپلود فایل است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?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; } } ?> |
حالا نیاز است که یک دایرکتوری جدید به نام “uploads” در دایرکتوری که فایل “upload.php” قرار دارد بسازید تا فایل های آپلود شده در آن ذخیره شوند.
اکنون می توانیم برخی محدودیت ها را اضافه کنیم.
ابتدا بررسی می نماییم که آیا فایل هم اکنون پوشه “uploads” وجود دارد یا نه.
اگر وجود نداشت یک پیغام خطا نمایش داده خواهد و uploadOk$ به ۰ تنظیم خواهد شد.
1 2 3 4 5 | // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } |
فایل ورودی یا عنوان “fileToUpload” در فرم HTML بالا قرار گرفته است.
اکنون می خواهیم اندازه فایل را بررسی کنیم.
اگر فایل بزرگتر از ۵۰۰KB باشد، یک پیام خطا نمایش داده می شود و uploadOk$ به ۰ تنظیم می شود:
1 2 3 4 5 | // Check file size if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Sorry, your file is too large."; $uploadOk = 0; } |
کد زیر فقط اجازه می دهد تا کاربران فایل JPG، JPEG، PNG و GIF را بارگذاری کنند.
سایر نوع فایل ها قبل از تنظیم uploadOk$ به ۰ یک پیغام خطا دریافت می نمایند.
1 2 3 4 5 6 | // 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; } |
فایل کامل “upload.php” به صورت زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <?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; } } // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // Check file size if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // 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; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } ?> |
در آموزش آپلود فایل در php 7 ، آپلود فایل در سرور در php آموختیم.
در جلسه بعدی به آموزش کار با کوکی ها در php 7 خواهیم پرداخت.
با پی وی لرن همراه باشید.
Sia
salam , khaste nabashid .man chejoori mitoonam tOoye form faghat ejazeye ino bedam ke harkoodoom az file-ha nahayatan 10MB va darkol jame kolle file ha bishtar az 50MB bishtar upload nashe ?
پی وی لرن
سلام
می توانید از افزونه ها استفاده کنید و یا چند تا از افزونه ها را اجرا و کدها آنها را مشاهده کنید.