آموزش ارتباط با سرور آنلاین در B4A – قسمت هفتم(آپلود فایل)
سلام
با هفتمین قسمت از سری آموزش های ارتباط با دیتابیس آنلاین در B4A در خدمتتون هستیم؛ تا اینجای کار درج در دیتابیس، نمایش اطلاعات از دیتابیس رو با مثال هایی که زدیم یاد گرفتیم. در این قسمت میخوایم بپردازیم به آپلود فایل در سرور که چگونه یک فایل رو میتونیم آپلود کنیم و در سرور ذخیره کنیم، در ادامه همراه بپرسم باشید.
آموزش:
کدهای سمت سرور
- قبل از هر کاری ابتدا کدهای سمت سرور را مینویسیم که کدها به بدین صورت است:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ |
<?php if (isset($_FILES['filename'])){ $file = $_FILES['filename']; $fileName = $file['name']; $filType = $file['type']; $fileTmp = $file['tmp_name']; $fileSize = $file['size']; $uploadOk = ۱; $target = 'upload/'; $newName = 'beporsam' . time(); //چک کردن سایز فایل if ($fileSize > ۵۰۰۰۰۰) { $uploadOk = ۰; echo "حداکثر تا ۵ مگابایت میتوانید آپلود کنید"; } //عملیات آپلود if ($uploadOk == ۱){ $ext = pathinfo($fileName, PATHINFO_EXTENSION); $target = $target . $newName . '.' . $ext; move_uploaded_file($fileTmp,$target); echo "آپلود انجام شد"; } else{ echo "آپلود انجام نشد"; } } ?> |
در خط ۸ هم یک متغیر ایجاد کردیم به نام uploadOk$ که مقدار پیشفرضش رو برابر یک گذاشتیم؛ که در طول کد ها با این متغیر چک میکنیم که عملیات آپلود درست انجام شده یا نه، اگر هر کدوم از شرط هایی که گذاشتیم غلط بود، مقدار این متغیر برابر ۰ و اگر صحیح بود مقدار متغیر برابر ۱ خواهد بود.
در خط ۹ نام پوشه دخیره فایلها را مشخص کردیم که گفتیم در پوشه upload ذخیره شود، همچنین در خط ۱۰ نام فایل آپلود شده را هر سری تغییر میدهیم، برای اینکه ممکن است فایل های همنام در سرور آپلود شود و اگر فایل همنام باشد، عملیات آپلود مختل میشود.
در خط ۱۲ هم یه شرط گذاشتیم و که اگر سایز تصویر از ۵ مگابایت بیشتر شد، آپلود انجام نشه و مقدار متغیر uploadOk$ برابر ۰ بشه و پیغامی چاپ بشه.
در خط ۱۸ هم که عملیات آپلود شروع میشه، که اگه آپلود انجام شد.
کدهای B4A
برای آپلود در بیسیک کتابخانه های مختلفی داریم که ما در این آموزش از کتابخونه PNUploadFile استفاده میکنیم(کتابخانه را در پایان آموزش میتوانید دانلود کنید).
- پروژه ی جدیدی ساخته و کتابخانه PNUploadFile را اضافه میکنیم.
- سپس متغیری از نوع PNUploadFile تعریف میکنیم.
۱ |
Dim PNUpload As PNUploadFile |
- حالا متغیر ساخته شده را باید Initialize کنیم.
۱ |
PNUpload.Initialize("PNUpload") |
- دستور آپلود با متدهایی که باید سمت سرور ارسال کنیم، بدین صورت است:
۱ |
startUpload(Method As String,ENCTYPE As String, FileAddress As Strting, URL As String, Name As String, Tag As Object) |
توضیحات هر یک از متدها:
Method As String: روش ارسال داده ها که از نوع GET یا POST می باشد.
ENCTYPE As String: نوع ارسال داده های فرم که به صورت پیشفرض multipart/form-data است.
FileAddress As Strting: آدرس فایل سمت سرور برای ارسال داده ها.
Name As String: نامی که همراه با ارسال فایل به سمت سرور بفرستیم.
- نمونه کدی که استفاده میکنیم برای آپلود فایل:
۱ ۲ |
PNUpload.StartUpload("","",File.Combine(File.DirRootExternal,"beporsam.jpg"), _ "https://beporsam.ir/upload/index.php","filename",۱) |
- برای لغو عملیات آپلود نیز از کد زیر استفاده می کنیم:
۱ |
PNUpload.CancellAll |
این سه خط کد برای آپلود فایل کافیست!
در ادامه میتوانید سورس را دانلود کنید.
همراه ما باشید با دیگر آموزش ها …
موفق باشید.
دیدگاه ( 2 )
با سلام
ممنونم از سایت خوب تون
من این ارور رو دام موقع استفاده از این کتابخانه
سلام
در تصویری که گذاشته هم گفته شده که مسیر فایل اشتباه هست
ممکنه عکس انتخابی، اسمش فارسی باشه بخاطر اون این خطا رو میده یا مشکل در کتابخانه picchooser هست
سلام
اگه یه باتن داشته باشم واسه لینک ftp و بخوام مانند لینک آیدی تلگرام و… باز بشه باید چکار کرد؟
Dim linkftp As phoneintent
آدرس یوآرال ftp اصلی:
StartActivity(linkftp.OpenBrowser(“ftp://www.golestandres.ir”))
آدرس آی پی ftp اصلی:
StartActivity(linkftp.OpenBrowser(“Ftp://185.141.39.237/”))
اینا رو قبول نمیکنه و هی خطا میده . متاسفانه هیچ جا نتونستم جواب پیداکنم.
ممنون