آموزش آپلود عکس به دیتابیس Mysql در اندروید

سلام دوستان امیدوارم حالتون خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش آپلود عکس به دیتابیس Mysql در اندروید می پردازیم در آموزش آپلود عکس به سرور ما یک دیتابیس داریم که بعد از آپلود آدرس عکس را برای ما نگه می دارد و این کار توسط یک فایل php انجام می شود در ادامه با ما همراه باشید.
 
ابتدا به یک دیتابیس نیاز داریم پس یک جدول (table) در mysql به نام check با دو فیلد ایجاد کرده نام فیلد اول را برابر با id و auto increment یا ai قرار داده و فیلد بعدی را برابر با image قرار دهید عکس زیر شاید بتواند به درک بهتر شما کمک کند. id را باید Primary key قرار دهید.
 

 
در بالا insert انجام شده است شما نباید مقداری در فیلد های بالا Insert کنید.
خب باید یک فایل php برای آپلود فایل ایجاد کنیم نام فایل ما برابر با Upload.php است بعد از ایجاد فایل کدهای زیر را در آن قرار دهید.

در بالا عمل post انجام می شود . قبل از توضیح دادن ادامه شما باید یک پوشه داشته باشید مثلا نام پوشه ما در اینجا برابر با myimage است بعد از اینکار یک پوشه دیگر به نام uploads در پوشه قبلی قرار دهید در بالا باید به جای $user یوزنیم دیتابیس خودتان و به جای $pass پسورد دیتابیس را قرار دهید . در صورتی که فایل به درستی آپلود شود پیام Successfully Uploaded و در غیر اینصورت Error نمایش داده می شود. در بالا query که این کار را انجام می دهد یک Insert به دیتابیس انجام میدهد یعنی ابتدا فایل آپلود می شود سپس مسیر آن به دست آمده و در mysql ما insert می شود نام هر فایل هم همان آیدی می شود تا راحتر بشود آنها را مدیریت کنیم.
برویم به سراغ کد های برنامه
ابتدا وارد فایل Build.gradle از نوع Module شده سپس در بخش dependencies کتاب خانه زیر را اضافه کنید.

پروژه را sync کنید.
وارد فایل AndroidManifest.xml شده و دسترسی های زیر را به آن اضافه کنید.

در layout اصلی که در اینجا نام آن برابر با activity_main.xml است یک ImageView و یک Button همانند زیر قرار دهید.

ImageView برای نمایش عکس و Button برای آپلود عکس است.
فایل php در آدرس زیر قرار گرفته است (برای مثال می گوییم همچین فایلی به خاطر مسائل امنیتی قرار گرفته نمی شود)

و درآخر کدهای زیر را در MainActivity.java قرار دهید (نیازی به کلاس دیگری نیست)

برای آپلود فایل ابتدا شما باید بروی ImageView کلیک کنید با کلیک بروی آن Gallery نمایش داده می شود onActivityResult به این منظور است که وقتی عکسی از Gallery انتخاب شد ما آدرس آن عکس را به دست بیاریم و بخش مهم کار این جاست که نمی شود عکس را دیتابیس قرار داد پس باید عکس تبدیل به متن شود برای اینکار ما از Void ی به نام getStringImage استفاده کردیم در این آموزش ما از RunTimePermission نیز استفاده کرده ایم البته در صورتی که api گوشی کاربر بالای 23 باشد نمایش داده می شود در غیر اینصورت اتفاقی نمی افتد. با کلیک بروی Imageview بالا void ی به نام showFileChooser نمایش داده می شود که قبلتر آن را توضیح دادیم برای چه کاری است.
در این آموزش با استفاده از volley عمل آپلود را انجام میدهیم یعنی عکس را به فایل php که ساختیم post کرده سپس از آنجا در mysql قرار می گیرد (منظور همان آدرس است)
 
این آموزش هم به پایان رسید.
 
موفق و پیروز باشید.

مطالعه بیشتر