Как сохранить / загрузить изображение на сервер на Android? - PullRequest
2 голосов
/ 21 июня 2011

Я хочу создать приложение, в котором пользователь может выбрать фотографию из Photo Album или сделать снимок из Camera. Я хочу загрузить выбранную или захваченную фотографию на сервер .

Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 21 июня 2011

вы берете диалоговое окно изображения галереи, используя этот код.

mUploadButton = (Button) findViewById(R.id.uploadButton);

mUploadButton.setOnClickListener(new OnClickListener() {//this button is used for pickup gallery image.
        public void onClick(View v) {

            Intent rselect = new Intent(Intent.ACTION_GET_CONTENT, null);
            rselect.setType("image/*");
            rselect.putExtra("return-data", true);
            startActivityForResult(rselect, 1);

        }
    });

onActivityResult () используется для

@Override
 public void onActivityResult(int requestCode, int resultCode, Intent data) {
     super.onActivityResult(requestCode, resultCode, data);
     switch (requestCode) {
         case 1:
             if(requestCode == 1 && data != null && data.getData() != null){
                // Bundle params = new Bundle();
                // params.putString("method", "photos.upload");
                // intent's getData() returns a Uri describing 
                // the data which the intent holds
                 Uri _uri = data.getData();

                 if (_uri != null) {
                     //User had pick an image.

                     Cursor cursor = getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
                     cursor.moveToFirst();

                     //Link to the image
                     final String imageFilePath = cursor.getString(0);
                     Log.v("imageFilePath", imageFilePath);
                     File photos= new File(imageFilePath);
                     long length = photos.length();

                     byte[] imgData = new byte[(int) length];

                     FileInputStream pdata = null;
                        try {
                            pdata = new FileInputStream(photos);


                        } catch (FileNotFoundException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                         try {
                            pdata.read(imgData);//imgdata is an array where you get byte data for selected image from gallery and ready to upload.
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }




                     cursor.close();
                 }
             }
             super.onActivityResult(requestCode, resultCode, data);
         }
     }
0 голосов
/ 24 июня 2011

Этот код загружает данные (изображения, mp3, текстовые файлы и т. Д.) На сервер HTTP:

Загрузка файлов на HTTP-сервер с помощью POST на Android.

0 голосов
/ 23 июня 2011

"imgData" является байтовым массивом.теперь эти данные готовы к загрузке на сервер.Вы делаете это, используя http post метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...