آموزش php از مبتدی تا ....
Открыть в Telegram
902
Подписчики
Нет данных24 часа
Нет данных7 дней
Нет данных30 дней
Архив постов
بازگشت ";
$sw=1;
}
if($_FILES['f']['size']/1024>100)
{
echo "اندازه فایل بزرگتر از مقدار خواسته شده می باشد";
echo "
بازگشت "; $sw=1; } if($sw==0) { $nm=md5(time()).".jpg"; move_uploaded_file($_FILES['f']['tmp_name'],"uppic/".$nm); echo "
" ;
echo "
"; echo "url : "."localhost/uppic/$nm"; } } else { echo " در آپلود فایل خطا وجود دارد"; echo "
بازگشت "; } ?>
بازگشت "; $sw=1; } if($sw==0) { $nm=md5(time()).".jpg"; move_uploaded_file($_FILES['f']['tmp_name'],"uppic/".$nm); echo "
"; echo "url : "."localhost/uppic/$nm"; } } else { echo " در آپلود فایل خطا وجود دارد"; echo "
بازگشت "; } ?>
برای اینکار ابتدا یکارایه تعریف می کنیم و پسوند های مورد قبول خود را دران قرارمی دهیم
سپس از فایل ارسال شده اخرین پسوند را استخراج می کنیم و بر اساس ان تصمیم گیری میکنیم (دقت شود ممکن است برای فایل چند پسوند قرار گیرد a.gif.jpg )
برای ایجاد این کد به تابع های زیر نیازداریم
تابع explode ک علامت و یک رشته را دریافت می کند و سپس، رشته مورد نظر را بر اساس علامتی که تعیین کرده ایم، به چندین رشته تجزیه کرده و به صورت یک آرایه رشته ای بر می گرداند.
تابع end که اخرین عنصر یک ارایه یا لیست را باز می گرداند
تابع in_array برای چک کردن وجود یک مقدار در یک آرایه می باشد. اگر مقدار موجود باشد، مقدار 1 را برمی گرداند و در غیر این صورت، مقدار 0 را برمی گرداند.
برای حل این مشکل می توانیم به جای بررسی نوع فایل پسوند فایل اپلود شده را بررسی کنیم
یکی از مشکلات اپلود فایل بررسی نوع فایل اپلود شده می باشد متلا برای تصاویر jpg سه حالت وجود دارد
image/pjpeg
Image/jpg
Image/jpeg
یا برای یک فایل فشرده با پسوند zip می تواند حال های مختلفی وجود داشته باشد
application/zip
application/x-zip-compressed
multipart/x-zip
application/x-compressed
همانطورکه فرمودند برای اینکه فایل جدیدکه اپلود می شود بر روی فایلهای قبلی قرار نگیرد ما نیار به یک اسم کاملا جدید و غیر تکراری داریم که با استفاده تابعmd5 , استفاده از پارامتر time() در داخل ان می توانیم تولید نماییم
تابع md5 یک مقدار رااز ورودی گرفته ویک رشته 32 کارکتری را تولید می کند درواقع این تابع یک تابع کدگذاری یک طرفه می باشد
اگر url را کپی کنیم و در قسمت نوار ادرس قرار دهیم عکس برای ما اورده می شود
0 || $_FILES['f']['size']/1024>100 || $_FILES['f']['type']!='image/jpeg')
{
echo "آپلود فایل ناموفق بود"."
".$_FILES['f']['error']; echo "بازگشت "; } else { $nm=md5(time()).".jpg"; move_uploaded_file($_FILES['f']['tmp_name'],"uppic/".$nm); echo "
" ;
echo "
"; echo "url : "."localhost/uppic/$nm"; } ?>
".$_FILES['f']['error']; echo "بازگشت "; } else { $nm=md5(time()).".jpg"; move_uploaded_file($_FILES['f']['tmp_name'],"uppic/".$nm); echo "
"; echo "url : "."localhost/uppic/$nm"; } ?>
ابتدا باید چک کنیم که فایل درست ارسال شده است برای این کار از مقدار error ارایه $_FILES استفاده میکنیم
سپس باید با استفاده از type نوع و با استفاده از size اندازه فایل را بررسی کنیم و در نهایت اگر همه موارد درست بود فایل را به پوشه uppic انتقال دهیم
هنگام انتقال برای جلوگیری احتمالی کپی فایل بر روی فایل ها قبلی که در پوشه وجود دارند باید برای فایل یک نام تصادفی ایجاد کنیم
مثال
پوشه ای به نام uppic در www ایجاد شده است
صفحه با نام up.php ایجاد کند که چک کند اگر فایل کاربر از نوع jpg بوده و اندازه فایل کمتر از 100kb است اجازه آپلود را بدهد و سپس فایل نمایش دهد
