Я хочу отправить изображение на свой бэкэнд, но не могу и не знаю, потому что. Бэкэнд делается с помощью фреймворка Express, также я протестировал функцию, и она работает, но при отправке с мобильного телефона не работает.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO: 12/27/2019 obtener la infomrmacion de la imagen
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK){
Uri photoUri = data.getData();
user_Img.setImageURI(photoUri);
String[] proj = { MediaStore.Images.Media.DATA };
Cursor actualimagecursor = managedQuery(photoUri, proj,null, null, null);
int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); actualimagecursor.moveToFirst();
String img_path = actualimagecursor.getString(actual_image_column_index);
Log.i("img_path", img_path);
String [] separar = img_path.split("/");
String nameImg = separar[6];
Log.i("nameImg", nameImg);
File file = new File(img_path);
if (file.exists()){
RequestBody requestFile = RequestBody.create(MediaType.parse("image/*"),file);
procfile = MultipartBody.Part.createFormData("photo",file.getName(), requestFile);
}
router = conexion.getApiService();
Call<ModelsMensajes> modelsMensajesCall = router.routerCrearCuenta(procfile);
modelsMensajesCall.enqueue(new Callback<ModelsMensajes>() {
@Override
public void onResponse(Call<ModelsMensajes> call, Response<ModelsMensajes> response) {
if (response.isSuccessful()){
String data = response.body().getMessage();
Toast.makeText(RegisterActivity.this, "" + data, Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<ModelsMensajes> call, Throwable t) {
}
});
}
}
@Multipart
@POST("user/test")
Call<ModelsMensajes> routerCrearCuenta(@Part MultipartBody.Part photo);
Это функция, которая имеет бэкэнд. Маршрут и json, что обратно.
router.post('/test', multipartMiddleware, test);
export async function test(req,res){
const urlPhoto = req.files.photo;
res.json({
message: urlPhoto
})
}
{
"message": {
"fieldName": "photo",
"originalFilename": "icons8-docker-48.png",
"path": "src/photos/B90paORGrFnWsr4jl-vVvUJa.png",
"headers": {
"content-disposition": "form-data; name=\"photo\"; filename=\"icons8-docker-48.png\"",
"content-type": "image/png"
},
"size": 1190,
"name": "icons8-docker-48.png",
"type": "image/png"
}
}