5

I want to get from an Android Uri (of the kind returned by onActivityResult) to a simple byte array, in order to upload a file as part of a multipart message. Can anyone provide an example of how to get from a Uri to a byte[] array?

Edit: I mean the android.net.Uri Uri

1 Answer 1

14

After putting together some SO examples and google group codes, i'm able to acheive it by this code:

Uri data = result.getData();   
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
FileInputStream fis;  
try {  
    fis = new FileInputStream(new File(data.getPath()));  
    byte[] buf = new byte[1024];  
    int n;  
    while (-1 != (n = fis.read(buf)))  
        baos.write(buf, 0, n);  
} catch (Exception e) {  
    e.printStackTrace();  
}  
byte[] bbytes = baos.toByteArray();
Sign up to request clarification or add additional context in comments.

1 Comment

I get this error: java.io.FileNotFoundException: /document/primary:Simon/Sample file/Financial Sample.xlsx: open failed: ENOENT (No such file or directory). Any idea?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.