您的位置:首页 > 其它

retrofit 实现文件上传和下载

2016-05-17 10:56 176 查看
retrofit实现文件上传和下载

1234567public interface FileWebService { @Multipart @POST("/files") FileUploadedResponse upload(@Part("fileContent") TypedFile file); }
2.

1

2

3

4

5

6

Filefile=//
create your File object here

RestAdapterrestAdapter=//
create your RestAdapter

StringmimeType="image/jpg";

TypedFilefileToSend=newTypedFile(mimeType,file);

FileWebServicefileWebService=restAdapter.create(FileWebService.class);

fileWebService.upload(fileToSend);

3.Downloading

123456public interface FileWebService{ @GET("/files/{fileId}") @Headers({"Content-Type: image/jpeg"}) Response getFile(@Path("fileId") int fileId); }
1

2

3

intfileId=123;

Responseresponse=fileWebService.getFile(fileId);

byte[]bytes=FileHelper.getBytesFromStream(response.getBody().in());

123456789101112131415public static byte[] getBytesFromStream(InputStream is) throws IOException { int len; int size = 1024; byte[] buf; ByteArrayOutputStream bos = new ByteArrayOutputStream(); buf = new byte[size]; while((len = is.read(buf, 0, size)) != -1) { bos.write(buf, 0, len); } buf = bos.toByteArray(); return buf;}
1

2

3

4

5

6

7

8

9

10

11

12

publicstaticvoidsaveBytesToFile(byte[]bytes,Stringpath){

try{

FileOutputStreamfileOuputStream=newFileOutputStream(path);

fileOuputStream.write(bytes);

}catch(FileNotFoundExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}finally{

fileOuputStream.close();

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: