使用多部分请求将Spring Boot REST Post映像上载到Android中的服务器 这是RestController,它是一个将图像上载到服务器的多部分请求 我正在尝试使用多部分请求将所选图像从库上载到服务器 当用户选择任何图像(从多媒体资料或照相机)时,我的主要活动 按下上载按钮时,所选图像必须上载到服务器 如上所述,发送请求将是多部分请求(Post方法)

使用多部分请求将Spring Boot REST Post映像上载到Android中的服务器 这是RestController,它是一个将图像上载到服务器的多部分请求 我正在尝试使用多部分请求将所选图像从库上载到服务器 当用户选择任何图像(从多媒体资料或照相机)时,我的主要活动 按下上载按钮时,所选图像必须上载到服务器 如上所述,发送请求将是多部分请求(Post方法),android,spring-boot,Android,Spring Boot,有人能帮我做这件事吗感谢他们。。。。。。。。 如果你有任何代码与我共享 @RequestMapping(value="/upload/{id}", method=RequestMethod.POST) public @ResponseBody BillUpload billUpload(@PathVariable Integer id, @RequestParam("file") MultipartFile files) throws

有人能帮我做这件事吗感谢他们。。。。。。。。 如果你有任何代码与我共享

      @RequestMapping(value="/upload/{id}", method=RequestMethod.POST)
        public @ResponseBody BillUpload billUpload(@PathVariable Integer id,
                @RequestParam("file") MultipartFile files) throws IOException{
            if (!files.isEmpty()) {
                FileUploadBean fileBean=new FileUploadBean();
                fileBean.setFile(files.getBytes());
                fileBean.setConsumerId(id);
                fileBean.setFileName(files.getOriginalFilename());

                String path= FileUploadProcess.createFile(fileBean);

                BillUpload billUpload=new BillUpload();
                billUpload.setUri(path);
                return billuploadRepository.save(billUpload);

            } else {
                return new  BillUpload();
            }

  }
package com.example.takeimage;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.provider.MediaStore.MediaColumns;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import org.springframework.web.client.RestTemplate;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class MainActivity extends Activity implements View.OnClickListener {

    int REQUEST_CAMERA = 0, SELECT_FILE = 1;
    Button btnSelect;
    ImageView ivImage;
    Button btnClick;
    static String ConsumerId = " ";
String path="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnSelect = (Button) findViewById(R.id.btnSelectPhoto);
        btnSelect.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                selectImage();
            }
        });
        ivImage = (ImageView) findViewById(R.id.ivImage);
        btnClick = (Button) findViewById(R.id.btnClick);
        btnClick.setOnClickListener(this);

    }

    @Override

    protected void onStart() {
        super.onStart();



    private void selectImage() {
        final CharSequence[] items = {"Take Photo", "Choose from Library",
                "Cancel"};

        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Add Photo!");
        builder.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int item) {
                if (items[item].equals("Take Photo")) {
                    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    startActivityForResult(intent, REQUEST_CAMERA);
                } else if (items[item].equals("Choose from Library")) {
                    Intent intent = new Intent(
                            Intent.ACTION_PICK,
                            MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    intent.setType("image/*");
                    startActivityForResult(
                            Intent.createChooser(intent, "Select File"),
                            SELECT_FILE);
                } else if (items[item].equals("Cancel")) {
                    dialog.dismiss();
                }
            }
        });
        builder.show();
    }

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

        if (resultCode == Activity.RESULT_OK) {
            if (requestCode == SELECT_FILE)
                onSelectFromGalleryResult(data);
            else if (requestCode == REQUEST_CAMERA)
                onCaptureImageResult(data);
        }
    }

    private void onCaptureImageResult(Intent data) {
        Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

        File destination = new File(Environment.getExternalStorageDirectory(),
                System.currentTimeMillis() + ".jpg");

        FileOutputStream fo;
        try {
            destination.createNewFile();
            fo = new FileOutputStream(destination);
            fo.write(bytes.toByteArray());
            fo.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        ivImage.setImageBitmap(thumbnail);
    }

    @SuppressWarnings("deprecation")
    private void onSelectFromGalleryResult(Intent data) {
        Uri selectedImageUri = data.getData();
        String[] projection = {MediaColumns.DATA};
        Cursor cursor = managedQuery(selectedImageUri, projection, null, null,
                null);
        int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
        cursor.moveToFirst();

        String selectedImagePath = cursor.getString(column_index);

        Bitmap bm;
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(selectedImagePath, options);
        final int REQUIRED_SIZE = 200;
        int scale = 1;
        while (options.outWidth / scale / 2 >= REQUIRED_SIZE
                && options.outHeight / scale / 2 >= REQUIRED_SIZE)
            scale *= 2;
        options.inSampleSize = scale;
        options.inJustDecodeBounds = false;
        bm = BitmapFactory.decodeFile(selectedImagePath, options);

        ivImage.setImageBitmap(bm);
    }


    @Override
    public void onClick(View v) {


    }
}

        }