Uploading android file by name from sd card

旧城冷巷雨未停 提交于 2019-12-08 02:41:29

问题


In a previous question (Take screensot and save android) I found out how to save a file to the sd card of an android device and it works properly. Now I need to know how to find the file programatically by name, and then upload the file to facebook or twitter. Currently my biggest issue is just to find the file.


回答1:


To get path of file from gallery

String filepath; // filepath contains path of the file

public void  getImage()
{
    // To open up a gallery browser
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"),1);
    // To handle when an image is selected from the browser, add the following to your Activity
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if (resultCode == RESULT_OK) {
        if (requestCode == 1) {
            // currImageURI is the global variable I'm using to hold the content:// URI of the image
            Uri currImageURI = data.getData();

            File file = new File(getRealPathFromURI(currImageURI));

            if (file.exists())
            {
                filepath=file.getAbsolutePath();
            }
            else
            {
                System.out.println("File Not Found");
            }
        }
    }
}

public String getRealPathFromURI(Uri contentUri)
{
    // can post image
    String [] proj={MediaStore.Images.Media.DATA};
    Cursor cursor = managedQuery( contentUri,
        proj, // Which columns to return
        null, // WHERE clause; which rows to return (all rows)
        null, // WHERE clause selection arguments (none)
        null); // Order-by clause (ascending by name)
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

To get image from sdcard

    File file = new File(android.os.Environment.getExternalStorageDirectory(),"MyDraw");
    if(file.exists())
    {
        File myfile = new File(file.getAbsoluteFile()+File.separator+"name.png");
        String path = myfile.getAbsolutePath();
    }

To upload file to a server. I am not aware of how to upload file to facebook or twitter. In general to upload file to server

    public void upload(String filepath)
    {
      try
      {
        HttpClient httpclient = new DefaultHttpClient();
        httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

        HttpPost httppost = new HttpPost("youe url");
        File file = new File(filepath);
        MultipartEntity mpEntity = new MultipartEntity();
        ContentBody cbFile = new FileBody(file, "image/jpeg");
        mpEntity.addPart("userfile", cbFile);
        httppost.setEntity(mpEntity);

        HttpResponse response = httpclient.execute(httppost);
        HttpEntity resEntity = response.getEntity();
      }
      catch(Exception e)
      {
        e.printStackTrace();
      }
   }



回答2:


first you need know th path of image and then use the facebook sdk to upload the picture in the profile

https://developers.facebook.com/android/

in the sdk exist one example for upload a image



来源:https://stackoverflow.com/questions/16571001/uploading-android-file-by-name-from-sd-card

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!