English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
لا أتحدث عن الكلام الهابط، سأقوم بعرض الكود مباشرة، كما هو موضح أدناه:
<?php /** * كلاس آپلود فایل * @author lijiamin * @time 2017-02-17 * @email [email protected] */ class Upload{ private $allowExt = array('gif','jpg','jpeg','bmp','png','swf'); // محدود کردن پسوند فایلهای آپلود شده private $maxSize = 1; // محدود کردن حداکثر اتصال فایل آپلود 1M /** * الحصول على معلومات الملف * @param str $flag معرف ملف الرفع * @return arr مجموعة معلومات ملف الرفع */ public function getInfo($flag){ return $_FILES[$flag]; } /** * الحصول على صيغة الملف * @param str $filename اسم الملف * @return str نهاية الملف */ public function getExt($filename){ return pathinfo($filename,PATHINFO_EXTENSION); } /** * تحقق من صحة ملف الرفع * @param str $filename اسم الملف * @return bool هل نهاية الملف صالحة؟ */ private function checkExt($filename){ $ext = $this->getExt($filename); return in_array($ext,$this->allowExt); } /** * تحقق من حجم الملف هل يتجاوز الحد؟ * @param int size حجم الملف * @return bool هل حجم الملف يتجاوز الحد؟ */ public function checkSize($size){ return $size < $this->maxSize * 1024 * 1024; } /** * اسم ملف عشوائي * @param int $len طول النص العشوائي * @return str نص عشوائي */ public function randName($len=6){ return substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len); } /** * إنشاء مسار تحميل الملف * @return str مسار تحميل الملف */ public function createDir(){ //مسار تحميل الملف $dir = './upload/'.date('Y/m/d',time()); //تحقق من وجود المجلد، إذا لم يكن موجودًا فيجب إنشاء if(is_dir($dir) || mkdir($dir,0777,true)){ return $dir; } } /** * تحميل الملف * @param str $flag معرف تحميل الملف * @return array عودة اسم الملف المرسل، مسار التخزين */ public function uploadFile($flag){ if($_FILES[$flag]['name'] === '' || $_FILES[$flag]['error'] !== 0){ echo "لا يوجد ملفات يتم تحميلها"; return; } $info = $this->getInfo($flag); if(!$this->checkExt($info['name'])){ echo "نوع الملف غير مدعوم"; return; } if(!$this->checkSize($info['size'])){ echo "حجم الملف يتجاوز الحد المسموح به"; return; } $filename = $this->randName().'.'.$this->getExt($info['name']); $dir = $this->createDir(); if(!move_uploaded_file($info['tmp_name'], $dir.'/'.$filename)){ echo "فشل في تحميل الملف"; }else{ return array('filename'=>$filename,'dir'=>$dir); } } } ?>
إعلان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع المالك الحقيقي بالحقوق، ويتم جمع المحتوى من قبل المستخدمين على الإنترنت الذين يقدمون المساهمات ويقومون بالتحميل، ويملك هذا الموقع حقوق الملكية، ولا يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية. إذا رأيت محتوى يشتبه في انتهاك حقوق النسخ، فأنت مرحب بك في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' بـ '@') لتقديم الشكوى، وقدم الدليل على الدليل، إذا تم التحقق من ذلك، سيتم حذف المحتوى المتهمة بالانتهاك فورًا.