PDA

View Full Version : آپلود عکس و متن در سرور



hamed_9192
جمعه 22 مرداد 1395, 15:06 عصر
با سلام
دوستان من با کد های زیر عکی رو از گالری انتخاب میکنم و درون یک ImageView هم نمایش میده




private void onSelectFromGalleryResult(Intent data) {

Bitmap bm=null;
if (data != null) {
try {
bm = MediaStore.Images.Media.getBitmap(getApplicationCo ntext().getContentResolver(), data.getData());
} catch (IOException e) {
e.printStackTrace();
}
}

ivImage.setImageBitmap(bm);
//ImageView IVADDPIC=new ImageView(this);
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
ivImage.setImageBitmap(BitmapFactory.decodeFile(pi cturePath));
//load images
BitmapDrawable drawable = (BitmapDrawable) ivImage.getDrawable();
Bitmap largeBitmap = drawable.getBitmap();
int h = 600; // height in pixels
int w = 600; // width in pixels
bitmap= Bitmap.createScaledBitmap(largeBitmap, h, w, true);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] Imagedata = baos.toByteArray();
// ImageView image=new ImageView(this);
// image.setImageBitmap(bitmap);
String encodedImageData = Base64.encodeToString(Imagedata, 0);




بعد هم با استفاده از کتابخانه AQuery عکس و متن های مورد نظر رو میفرستم به وب سرویس و متن ها و نام عکس توی دیتا بیس ذخیره مشن و عکس هم تی یه فولدری بعد از جا گذاری نام ذخیره میشه.

اما یه مشکل عجیب پیش آمده. اونم اینکه بعضی از عکس ها توی سرور آپلود نمیشن. مثلا از 5 تا عکس متفاوتی که تست کردم فقط سه تاش آپلود شدن
نه به سایز، فرمت و نام عکس ها هم بستگی نداشت
لطفا راهنمایی کنید. مشکل از کجاست؟؟؟
با تشکر

perkas
جمعه 22 مرداد 1395, 18:19 عصر
سلام

چرا از کتابخانه VOLLEY استفاده نمیکنی

https://www.simplifiedcoding.net/android-volley-tutorial-to-upload-image-to-server/

hamed_9192
جمعه 22 مرداد 1395, 19:58 عصر
سلام

چرا از کتابخانه VOLLEY استفاده نمیکنی

https://www.simplifiedcoding.net/android-volley-tutorial-to-upload-image-to-server/




با سلام

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

دوستان اگر راه حلی به ذهنشون میرسه لطفا راهنمایی کنند.
با تشکر

perkas
جمعه 22 مرداد 1395, 21:08 عصر
اینکه بعضی عکسها آپلود نمیشن ممکه به خاطر تنظیمات سرور باشه که فایلی با سایز مثلا بیشتر از 8 مگابایت رو آپلود نمیکنن . که برای رفع این مشکل باید با مدیر سرور تماس بگیری تا کانفیگ مربوطه رو انجام بده

hamed_9192
جمعه 22 مرداد 1395, 22:28 عصر
اینکه بعضی عکسها آپلود نمیشن ممکه به خاطر تنظیمات سرور باشه که فایلی با سایز مثلا بیشتر از 8 مگابایت رو آپلود نمیکنن . که برای رفع این مشکل باید با مدیر سرور تماس بگیری تا کانفیگ مربوطه رو انجام بده

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