Загрузить изображение на сервер MySQL, используя PHP в Android

Пожалуйста, обнажите мой английский

Как я могу загрузить захваченное изображение в базу данных?

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

camera = (ImageButton) findViewById( R.id.camera );

camera.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog = new Dialog( MainActivity.this );
dialog.setContentView( R.layout.camera_gallery );
dialog.setTitle( "Upload Image" );
dialog.setCancelable( true );
dialog.show();



capture = (Button) dialog.findViewById( R.id.capture );
download = (Button) dialog.findViewById( R.id.download );


capture.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent intent = new Intent( MediaStore.ACTION_IMAGE_CAPTURE );
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
getFileUri();
i.putExtra(MediaStore.EXTRA_OUTPUT, file_uri);
startActivityForResult(i, 10);
}
} );

download.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent( Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI );
intent.setType("image/*");
startActivityForResult( intent, gallery );
}
} );

}
} );

}


private void getFileUri() {
image_name = "testing123.jpg";
file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
+ File.separator + image_name
);

file_uri = Uri.fromFile(file);
}

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

//code here
}
}

Здесь я хочу добавить захваченное изображение в свою базу данных тоже в оригинальном размере, а не в миниатюре.

И у меня есть еще один в отношении MySQL. Можем ли мы сохранить файл изображения в базе данных, а если нет, то как они хранят изображения.

А также любые предложения о том, как хранить мои захваченные изображения во внутренней памяти.

1

Решение

Код Android для загрузки изображения с помощью залпа VolleyMultipartRequest,

final File file = new File("Your image path here");
final byte[] b = new byte[(int) file.length()];
VolleyMultipartRequest multipartRequest = new VolleyMultipartRequest(Request.Method.POST, "url", new Response.Listener<NetworkResponse>() {
@Override
public void onResponse(NetworkResponse response) {
String resultResponse = new String(response.data);
Toast.makeText(getActivity(), "File uploaded successfully", Toast.LENGTH_SHORT).show();




}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
pd.dismiss();
Toast.makeText(getActivity(), "Something went wrong!", Toast.LENGTH_SHORT).show();

}
}) {


@Override
protected Map<String, DataPart> getByteData() {
Map<String, DataPart> params = new HashMap<>();
params.put("Filename", new DataPart("file",b ));

return params;
}
};

GlobalClass.getmInstance().addToRequestQueue(multipartRequest);
1

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

Вы можете конвертировать изображение в формат base64. например:

    bitmap2 = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), uri);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap2.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String ImageString = Base64.encodeToString(imageBytes, Base64.DEFAULT);
0

По вопросам рекламы [email protected]