آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

اشکال در ارسال عکس به سرور

فرهاد  4 سال پیش  4 سال پیش
0 0

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

public class Profile extends RuntimePermissionsActivity {
CircleImageView img_prof;
private String imageEncode = "";
EditText edt_name;
Button btn_confirm;
SharedPreferences token;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_profile);
FindViews();
nextPage();

}

@Override
public void onPermissionsGranted(int requestCode) {
if (requestCode == Key.REQOUES_EXTERNAL_STORAGE) {
getImage();
}
}

@Override
public void onPermissionsDeny(int requestCode) {

}

void getImage() {
ImageGallery.showImage(Profile.this, Key.CHOOSE_GALLERY);

}

void FindViews() {
img_prof = findViewById(R.id.img_prof);
edt_name = findViewById(R.id.edt_name_profile);
btn_confirm = findViewById(R.id.btn_confirm_profile);
token = PreferenceManager.getDefaultSharedPreferences(this);

}

void nextPage() {
img_prof.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Profile.super.requestAppPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, Key.REQOUES_EXTERNAL_STORAGE);
}
});
btn_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendData();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
Profile.this.finish();
}
});
}

void sendData() {
String url = "http://hesabdarbartar.ir/api/update";

Response.Listener<String> listener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("response1212", "" + response);

}
};

Response.ErrorListener errorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("erer", "" + error.getMessage());
}
};

StringRequest request = new StringRequest(Request.Method.POST, url, listener, errorListener) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put(Key.NAME, edt_name.getText().toString());
params.put(Key.IMAGE, imageEncode);
return params;
}

@Override
public Map<String, String> getHeaders() throws AuthFailureError{
Map<String, String> header = new HashMap<String, String>();
header.put("Content-Type", "multipart/form-data");
header.put("Authorization", "Bearer " + token.getString("token", ""));
return header;
}
};
MySingleton.getInstance(getApplicationContext()).addToRequestQueue(request);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if (requestCode == Key.CHOOSE_GALLERY && resultCode == RESULT_OK) {
Bitmap bitmap = ImageGallery.getBitmap(Profile.this, data.getData());
imageEncode = ImageGallery.getStringImage(bitmap, 300);
img_prof.setImageBitmap(bitmap);

}
+1 0
پیشنهاد می کنم عکس هارو با فرمت base64 کد گذاری کنید و اون هارو تو دیتابیس ذخیره کنید تا به جای اینکه با فایل اون هارو ذخیره کنید این کد گذاری رو کتابخانه Glide انجام می ده. از Bitmap استفاده نکنید. تو نمونه پستمن شم دارید فایل رو ارسال میکنید ولی در کد هاتون دارید عکس تبدیل شده به نوشته استفاده می کنید imageEncode = ImageGallery.getStringImage(bitmap, 300); به نظر همین باشه (4 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .