使用Volley和REST API上传照片

时间:2016-08-22 09:51:20

标签: android rest

我需要在我的应用中实现个人资料图片上传:

如何在我的服务器上的文件夹(/ uploads)中上传图库中的照片?我可以用我的休息api和Volley这样做吗?

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == GALLERY && resultCode != 0) {
        Uri mImageUri = data.getData();
        Log.d("TAG", mImageUri.toString());
        try {
            Image = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), mImageUri);
            if (getOrientation(getActivity().getApplicationContext(), mImageUri) != 0) {
                Matrix matrix = new Matrix();
                matrix.postRotate(getOrientation(getActivity().getApplicationContext(), mImageUri));
                if (rotateImage != null)
                    rotateImage.recycle();
                rotateImage = Bitmap.createBitmap(Image, 0, 0, Image.getWidth(), Image.getHeight(), matrix,true);
                bm = rotateImage;
                iv.setImageBitmap(rotateImage);
            } else{
                bm = Image;
                iv.setImageBitmap(Image);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这是我在用户点击个人资料图片时设置imageview的方式,但我需要热门上传/检索此内容。

1 个答案:

答案 0 :(得分:0)

试试这个......

public static JSONObject postFile(String url,String filePath,int id){

 String result="";
 HttpClient httpClient = new DefaultHttpClient();
 HttpPost httpPost = new HttpPost(url);
 File file = new File(filePath);
 MultipartEntity mpEntity = new MultipartEntity();
 ContentBody cbFile = new FileBody(file, "image/jpeg");
 StringBody stringBody= null;
 JSONObject responseObject=null;

 try {

    stringBody = new StringBody(id+"");
    mpEntity.addPart("file", cbFile);
    mpEntity.addPart("id",stringBody);
    httpPost.setEntity(mpEntity);
    System.out.println("executing request " + httpPost.getRequestLine());
    HttpResponse response = httpClient.execute(httpPost);
    HttpEntity resEntity = response.getEntity();
    result=resEntity.toString();
    responseObject=new JSONObject(result);
 } 
 catch (UnsupportedEncodingException e) {
    e.printStackTrace();
 } 
 catch (ClientProtocolException e) {
    e.printStackTrace();
 } 
 catch (IOException e) {
    e.printStackTrace();
 } 
 catch (JSONException e) {
    e.printStackTrace();
 }
  return responseObject;
}