Отправьте растровое изображение с Android и получите его на php сервере

Я обращался к старым статьям, не только для SO, но и ко всем другим веб-сайтам, чтобы решить эту проблему, они используют старые API-интерфейсы Android, которые устарели, и поэтому я должен спросить об этом здесь снова.

Я уже успешно отправляю и получаю текстовые данные с Android на php-сервер и сохраняю их в базе данных MySql. Но я понятия не имею, как мне отправлять и получать растровое изображение с телефона на сервер.

Может быть, я могу преобразовать растровое изображение в строку и отправить его, как и любые другие строки, но тогда как мне декодировать строку растрового изображения на моем php-сервере?

Вот мой код для отправки текстовых данных, и я хочу отправить свое захваченное (растровое) изображение вместе с данными:

public class PostComplaint extends AppCompatActivity {

SharedPreferences preferences;
String link; //Getting this from the sharedPreferences which I have removed here

private static final int CAMERA_REQUEST = 1888;
ImageButton addImage;
Bitmap photo;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_post_complaint);

addImage = (ImageButton) findViewById(R.id.imageButton);
addImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK){
photo = (Bitmap) data.getExtras().get("data");
addImage.setImageDrawable(null);
addImage.setBackgroundColor(Color.parseColor("#ffffff"));
addImage.setImageBitmap(photo);

//Below I have converted Bitmap into String but I have no idea how to use it
ByteArrayOutputStream baos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 40, baos);
byte[] photoByte = baos.toByteArray();
String encodedImage = Base64.encodeToString(photoByte,Base64.DEFAULT);
}
}

public void submit(View view) {
//Getting text data from EditTexts.
final String location,problem_type,comment;
EditText et;
et = (EditText) findViewById(R.id.location);
location = et.getText().toString();
et = (EditText) findViewById(R.id.comment);
comment = et.getText().toString();
Spinner spinner = (Spinner) findViewById(R.id.spinner1);
problem_type = spinner.getSelectedItem().toString();

HashMap postData = new HashMap();
postData.put("location",location);
postData.put("problem_type",problem_type);
postData.put("comment",comment);

//I have provided a link to the below library that I have used.
PostResponseAsyncTask submitTast = new PostResponseAsyncTask(PostComplaint.this,postData, new AsyncResponse() {
@Override
public void processFinish(String s) {
Toast.makeText(PostComplaint.this, "" + s, Toast.LENGTH_SHORT).show();
}
});
submitTast.execute("http://" + link + "/addComplaint.php");
}
}

Я использую библиотеку, и вот ссылка на нее. (generic_asynctask_v2)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector