خانه اندروید

800 ساعت آموزش اختصاصی

بیش از 30 هزار دانشجو

آموزش های پروژه محور

مطالب پیشنهادی حتما مشاهده کنید :

فیلم آموزش آپلود تصویر با volley در اندروید استودیو

فیلم آموزش آپلود تصویر با volley در اندروید استودیو

فیلم آموزش آپلود تصویر با volley در اندروید استودیو

آموزش آپلود تصویر روی سرور برنامه نویسی سمت سرور php

آپلود تصویر با volley ، بنام خدا دوستان سلام در خدمت شما هستیم با یکی دیگر از آموزش اندروید استودیو ، توی این جلسه از فیلم های آموزشی اندروید می خواهیم بپردازیم به مبحث آپلود تصویر روی سرور php و کد نویسی مربوط به آپلود تصویر با volley این قسمت رو پیاده سازی کنیم . به این صورت که کاربر با انتخاب دلخواه خود می تواند تصویری را از گوشی خود انتخاب و سپس  روی سرور تصویر مربوط را ارسال کند و اگر آموزش های سایت خانه اندروید رو دنبال کرده باشین ما آموزش خواندن و یا دریافت اطلاعات از سمت سرور رو خدمت شما عزیزان آموزش دادیم.

حتما بخوانید : نمایش اطلاعات از سمت سرور JsonArrayRequest Volley اندروید استودیو

خوب دوستان همان طور که می دانید برای اضافه کردن کتابخانه والی باید در بخش گردل کتابخانه زیر را وارد کرده و سپس روی سینک کلیک کنیم تا کتابخانه فوق توسط گردل دانلود و قابل استفاده باشد.

compile 'com.android.volley:volley:1.0.0'

کاری که می خواهیم انجام بدیم :

آپلود تصویر کتابخانه والی

آموزش اندروید استودیو سرفصل های فیلم آموزش آپلود تصویر با volley در اندروید استودیو

 – برنامه نویس سمت سرور 

 -آموزش فیلتر کردن تصاویر توسط Intent

 -ارسال پارامتر به سمت سرور همراه با تصویر

 -پیاده سازی ارایه از نوع بایت byte

 -ذخیره نام تصویر توسط id

 – سورس کد بخش xml

 -آموزش کار با bitmap

 -پیاده سازی interface و فراخوانی

 -ارسال تصویر و تبدل به رشته ByteArrayOutputStream

 -پیاده سازی کلاس مجزا برای ارسال تصویر

 -پیاده سازی متد های والی برای ارسال تصویر و پارامتر

 -گرفتن String از تابع

 -کار با هش مپ ها <>Map

 –توضیحاتی کامل در مورد آپلود تصویر

 -چک کردن متد های ارسال کاربر

 -ارسال و دریافت توسط file_put_contents

 –پیاده سازی سازنده برای گرفتن context و ProgressDialog

 -و…

خانه اندروید دانلود فیلم آموزشی  لطفا فیلم آموزشی رو هم ببنید برای توضیحات بیشتر :

حجم فیلم آموزشی   حجم فیلم : ۱۳۰  مگابایت

پسورد فایل   پسورد فایل فشرده : homeandroid.ir

خانه اندروید منبع آموزش : خانه اندروید

 

درباره نویسنده

جواد محمدی هستم بنیان‌گذار سایت خانه اندروید در خدمتون هستیم با آموزش و مفاهیم برنامه نویسی اندروید-نزدیک به 10 سال هست در حوزه برنامه نویسی فعالیت می کنم. مسلط به kotlin,java,flutter,php هستم . در خانه اندروید دانستی های خودم را در اختیار تمامی علاقمندان به برنامه نویسی قرار میدم.تشکر از اینکه خانه اندرورید رو دنبال می کنید.

قبل از ارسال دیدگاه

  • قبل از ارسال دیدگاه: لطفا دیدگاه خودتون رو فقط در مورد این مطلب بنویسید.سپاسگزارم.

    دیدگاه های طولانی نادیده گرفته می شوند لذا دیدگاه خودتان را در دو خط خلاصه کنید.

    دیدگاه های که شامل توهین یا متن توهین آمیز اصلا تایید نمی شود.

    به دیدگاه های بی نام و نشان که ایمیل فیک و نام فیک وارد می کنند پاسخ داده نمی شود

46 دیدگاه

  1. عباس مهدی پور گفت:

    سلام
    من آموزش رو پیش رفتم ولی برای ارسال عکس به سرور یک متغیر استرینگ باید بفرستم و یک اینتیجر

    چجوری بفرستمش در قسمت هش مپ؟؟(چون اونجا یک نوع میشه فرستاد انگار)
    و دوم اینکه اعتبار سنجی با توکن اینجا لازم نیست؟؟

    • سلام و درود
      در بخش پارمتر ها می توانید پارمتر مورد نظر خودتون رو ارسال کنید.
      hashmap(String,”value”)
      hashmap(int,”1″)
      برای ارسال توکن به همین شکل
      با احترام.

  2. آرسا گفت:

    سلام
    موقع اججرای اپلیکیشن
    این پیغام رو میده
    Cleartext HTTP traffic to shop1200.ir not permitted
    اینو سرچ کردم گفتن تو AndroidManifest.xml
    android:usesCleartextTraffic=”true”گفتن اینو اضافه کنم
    اجرا ک میگیرم اپلیکیشن فقط یکبار کار می کند
    و باید از گوشی پاک کنم و دوباره نصب می کنم یکبار دیگر کار می کند اونم دوبار فقط یکبار

  3. محمد گفت:

    سلام. خسته نباشید
    من مطابق آموزش پیش رفتم و پیغام موفقیت آمیز بودن آپلود رو داد و لینک عکس داخل دیتابیس درج شد ولی داخل پوشه ای که داخل هاست برای آپلود عکس ایجاد کردم، عکسی آپلود نمیشه. permission پوشه رو با ۷۷۷ هم تست کردم.

    • Admin گفت:

      سلام و احترام
      کاربر گرامی دقت کنید لطفا اگر حجم تصویر بالاست باید فشرده بشه که در این خصوص باید آموزش جدید آپلود چندین تصویر رو مشاهده کنید .
      چنانچه به غیر این هست مشکل از سمت اندروید یا php چیست که نیازمند بررسی هست.
      با احترام

  4. حجت بابایی گفت:

    سلام خسته نباشید من می خوام با استفاده از اموزش شما فایل صوتی وتصویری به هماه عکس وسایر اطلاعات مثل نام عکس ونام فایل صوتی ویا تصویری وتوضیحات لینک دانلود و…. به سمت سرور ارسال کنم تا با برنامه ام بتونم دانلودش کنم
    این آموزش به من کمک می کنه؟

  5. رضا گفت:

    سلام
    برنامه درست کار میکنه

    ولی اگه مثلا حجم عکس۲یا۳ مگابایت باشه برنامه کرش میکنه میاد بیرون

    اما رو عکسایی که حجمش زیر ۱ مگابایت باشه راحت ارسال میشه با همون کیفیت

    راهی هست که بشه حجم بالا ارسال کرد؟

    • Admin گفت:

      سلام و درود دوست عزیز رضا
      امکان ارسال تصویر با ۴ میگ و یا ۵ میگ هم هست و مشکلی نیست ولی باید تصویر رو سایزش رو حتما کمتر کنید .
      برای اینکار جایی که تصویر رو به بایت تبدل می کنید
      سورس کد زیر رو استفاده کنید
      int nh = (int) ( bitmap.getHeight() * (412.0 / bitmap.getWidth()) );
      Bitmap scaled = Bitmap.createScaledBitmap(bitmap, 412, nh, true);
      و scaled رو بفرستید.
      با احترام.

      • رضا گفت:

        سلام ممنون

        این کدی که نوشتم درسته؟
        public String getStringImage(Bitmap bitmap) {
        Log.i(“MyHitesh”, “” + bitmap);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] b = baos.toByteArray();
        String temp = Base64.encodeToString(b, Base64.DEFAULT);
        bitmap = BitmapFactory.decodeByteArray(b,0,b.length);
        int nh = (int) ( bitmap.getHeight() * (412.0 / bitmap.getWidth()) );
        Bitmap scaled = Bitmap.createScaledBitmap(bitmap, 412, nh, true);
        return temp;

        قسمت return temp; باید scaled رو بنویسیم؟

  6. رضا گفت:

    سلام
    ایم خط کدداخل هاست واقعی چی بنویسم؟
    $path = “img/$id.png”;
    $actualpath=”localhost/server/$path”;
    ادرس هاست رو مینیوسم ولی موقع سرچ چیزی پیدا نمیکنه
    پوشه تو در تو دارم

    • Admin گفت:

      سلام دوست عزیزم رضا
      مسیر دهی رو انجام بدین مثلا الان توی پوشه server گفتین به جای پوشه server پوشه ای که می خواهین ذخیره بشه رو بگین . مثلا image
      $actualpath=”image/$path”;
      موفق باشین.

      • رضا گفت:

        سلام
        مشکل ذخیره شدن رو حل کردم
        ولی میخوام متن فارسی هم باهاش ارسال کنم
        اما داخل دیتابیس به این صورت ذخیره میشهبیژنی
        کد اتصال به سرور مشکلی داره؟
        define(‘host’,’localhost’);
        define(‘username’,’shohdano_golkhan’);
        define(‘password’,’reza159357456′);
        define(‘DB’,’shohdano_golkhane’);
        mysql_query($con.”SET CHARSET UTF8″);
        $con=mysqli_connect(host,username,password,DB) or die(‘con not connnect to database’);

        • Admin گفت:

          سلام دوست عزیز
          وقتی که پست رو ارسال می کنید قبل از دستور insert یا بعد از اون تفاوتی نداره
          از کانکشنی که به دیتابیس میفرستین دستور زیر رو قرار بدین.
          $con->set_charset(“utf8”);
          با احترام.

  7. developer گفت:

    سلام من مشکل از کد های php دارم که جستجو میزنم خطا errorمیده نمیدونم خطا از کجاست لطفا کدی که در آموزش نوشته بودید به ایمیلم ارسال کنید با تشکر

    • Admin گفت:

      سلام دوست عزیزم.
      توی تلگرام پیام بدین تا راهنمایی کنم و براتون کد ها رو هم بفرستم.
      با احترام.

  8. lale گفت:

    سلام در قسمت آموزش php ننوشتید ما چجوری طبق آموزش عمل کنیم وقتی کدphp ندونیم چی هست

    • Admin گفت:

      سلام دوست عزیزم.
      خیر سورس کد به صورت کامل توضیح داده شد و با نوشتن هیچ فرقی نداشت.
      با احترام.

  9. علی گفت:

    سلام
    چکار کنیم عکس با کیفیت به سمت سرور ارسال شود
    من اینکار رو انجام دادم ولی عکسهای کیفیتشون خیلی کم میشه
    آیا راه کاری دارید برای آپلود عکس با همان کیفیت خودش

    • Admin گفت:

      سلام خدمت شما
      تصویر به خوبی آپلود میشه و کیفیت هم همون جا توضیح دادم قسمتی هست که میگم کیفیت ۱۰۰ یا ۸۰ اونجا اگر ۱۰۰ بزارین تصویر با کیفیت اصلی ارسال میشه دوست عزیزم.
      با احترام.

  10. hossein111 گفت:

    سلام خسته نباشید.
    ممنون آموزش خوب و مفیدی بود.
    لطف می کنید یه آموزش هم در رابطه با آپلود فایل با volley قرار بدید، خیلی بهش احتیاج دارم، اما آموزش مفیدی پیدا نکردم، یا اگر شما آموزش خوبی سرغ دارید لطف کنید لینکش رو برام بفرستید.( تفاوت زیادی با آپلود تصویر داره؟)
    خیلی ممنون.

  11. امیر گفت:

    با این اموزش میشه عکس هایی که حجم زیادی دارند یا کیفیت بالایی دارند رو هم اپلود کرد؟

    * من قبلا یک اموزش توی نت گرفتم ولی عکس هایی که با دوربین گوشی میگرفتم و کیفیت بالا داشتن ارسال نمیکرد و باید کیفیت رو کم میکردم تا ارسال شود.

  12. امیر گفت:

    سلام وقت بخیر
    من این اموزش رو تهیه کردم الان همه چیز درست کار میکنه اما یه مشکلی دارم
    زمانی که عکس رو اپلود میکنم تابع onerrorListener اجرا میشه و ارور تایم اوت والی میده
    تحقیق کردم نوشته بود مدت زمان تایم اوت رو بالا ببرید اما با ایم کار وقتی عکس اپلود میشه به صورت یه عکس خاکستری اپلود میشه ینی عکس مشخص نیست
    ممنون میشم راهنماییم کنید

    • Admin گفت:

      سلام خدمت شما دوست عزیزم
      با توجه به اینکه سرعت اینترنت ایران خیلی کمه باید timeout زیادی رو برای ارسال به سمت سرور در نظر بگیرن.
      stringRequest.setRetryPolicy(new DefaultRetryPolicy(100000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
      Volley.newRequestQueue(context).add(stringRequest);
      البته مشکل برای ارسال به سمت cpanel پیش میاد و در برخی موارد مشکل از سورس کد شماست که ارسالی انجام نمیشه و خطا timeout بر می گردونه.
      بررسی شد: جواب سوال شما :
      ویرایش دیدگاه : لطفا دقت کنید اگر مسیر فایل اشتباه باشه فایل مورد نظر به صورت سیاه ارسال میشه.
      با احترام.

  13. امین گفت:

    با سلام با استفاده از این آموزش میشه چندتا عکس رو هم ارسال کرد مثلاً مثل برنامه های تبلیغاتی مثل دیوار

  14. امین گفت:

    با سلام و احترام
    با استفاده از این آموزش میشه همزمان سه تا یا بیشتر عکس رو ارسال کرد سمت سرور ؟

    • Admin گفت:

      سلام خدمت شما دوست عزیزم.
      توی این فیلم ما یک دونه عکس اپلود می کنیم و اگر قصد شما افزودن یا انتخاب چند تصویر هست حتما بایدبا ارایه ها کار کنید که هنوز آموزشی در باب موضوع فرصت تهیه نداشتم و در فرصت مناسب تهیه می کنم.
      و این آموزش در حال حاضر جوابگوی کار شما هست.
      با احترام.

  15. محمدرضا گفت:

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

    تشکر

  16. زهرا گفت:

    سلام وقت بخیر از آموزش خوبی که ارائه دادین تشکر می کنم.

  17. pezhy گفت:

    درود من می خوام برنامه اندروید ی واسه خودم بسازم که هر وقت از داهل این برنانه ویدیویی را اپلود می نمایم روی پروفایل یوتیوب من آپلود شود آیا این مسئله شدنی است

    • Admin گفت:

      سلام خدمت شما دوست عزیزم.
      باید با api های یوتویوب کار کنید.
      و بنده چون نیازی نداشتم این مورد رو کار نکرده ام ولی جستجو کنید به نتیجه دلخواه خودتون می رسید.
      با احترام.

  18. محسن گفت:

    سلام و روز بخیر
    با تشکر از مطالب خوبتون مشکلی داشتم که خواستم راهنماییم کنید
    من دقیقا مثل آموزش شما پیش رفتم اشکالی که دارم اینه که عمل insert در دیتابیس انجام میشه اما فایل مورد نظر من بر روی هاست ارسال نمیشه.
    هاست من ویندوزی هست و کد خودم را براتون میزارم ببینید آیا مشکل از کد هست یا چیز دیگه ای

    $UserID=$_POST[“UserID”];
    $RowNumberView=$_POST[“RowNumberView”];
    $ProductCode=$_POST[“ProductCode”];
    $PicUrl=$_POST[“PicUrl”]; //$_FILES
    $PicDesc=$_POST[“PicDesc”];
    $PicStyle=$_POST[“PicStyle”];

    //print “& Secend test php file:UserID=”.$UserID.” RowNu= “.$RowNumberView.” PrCode= “.$ProductCode.” PicUrl= “.$PicUrl.” PicDesc= “.$PicDesc.” PicStyle= “.$PicStyle;

    $result = sqlsrv_query($conn,”SELECT GalleryCode from [products].[tbl_ProductsGallery] ORDER BY GalleryCode “);
    $id = 0;

    $gallery=array();
    while( $row = sqlsrv_fetch_array($result))
    {
    $id=$row[“GalleryCode”];
    $id=$id+1;

    }

    $UserGalleryCode = $UserID.’_’.$id;

    $path = “uploads/category/$UserGalleryCode.png”;

    $actualpath = “http://refahbon.ir/uploadexample/$path”;

    $result2 = sqlsrv_query($conn,”INSERT INTO [products].[tbl_ProductsGallery] ( UserID, RowNumberView, ProductCode, PicUrl, PicDesc, PicStyle, Status ) VALUES (‘$UserID’, ‘$RowNumberView’, ‘$ProductCode’, ‘$actualpath’, ‘$PicDesc’, ‘$PicStyle’, 1)”);

    if($result2){
    file_put_contents($path,base64_decode($PicUrl));
    print $path;
    }else{
    print “no insert”;
    }

    ممنون میشم راهنماییم کنید

    • Admin گفت:

      سلام و احترام دوست عزیز
      قبل از هرکاری باید بررسی کنید ببنید اصلا فایل کانفیگ توی دیتابیسی یا سی پنل یا هاستی که قرار اصلا به دیتابیس مورد نظر کانیکت میشه یا خیر
      لطفا بررسی بفرمایید.
      با احترام.

  19. ali گفت:

    سلام از وبسایت خوبتون تشکر می کنم و ارزش خرید رو داشت هرچند میدونم که قیمت واقعی نزدید و انشالا کمکی بشه به پابرجا موندن سایت خانه اندروید تشکر از لطفتون.

    • Admin گفت:

      سلام و احترام دوست عزیز علی
      از شما ممنونم. بله محصولاتی که ارائه شده قیمت واقعی نیست و قیمتی برای تامین هزینه های سرور.تشکر

  20. محسن گفت:

    از ادمین گرامی تشکر می کنم بابت آموزش خوبی که ارائه دادن.

  21. سمیرا گفت:

    ایول عالی بود.