1.创建上传接口
1
2
3
4
5
6
7
|
public
interface
FileWebService
{
@
Multipart
@
POST
(
"/files"
)
FileUploadedResponse
upload
(
@
Part
(
"fileContent"
)
TypedFile
file
)
;
}
|
2.调用上传
1
2
3
4
5
6
|
File
file
=
// create your File object here
RestAdapter
restAdapter
=
// create your RestAdapter
String
mimeType
=
"image/jpg"
;
TypedFile
fileToSend
=
new
TypedFile
(
mimeType
,
file
)
;
FileWebService
fileWebService
=
restAdapter
.
create
(
FileWebService
.
class
)
;
fileWebService
.
upload
(
fileToSend
)
;
|
3.创建下载接口
1
2
3
4
5
6
|
public
interface
FileWebService
{
@
GET
(
"/files/{fileId}"
)
@
Headers
(
{
"Content-Type: image/jpeg"
}
)
Response
getFile
(
@
Path
(
"fileId"
)
int
fileId
)
;
}
|
4.调用
1
2
3
|
int
fileId
=
123
;
Response
response
=
fileWebService
.
getFile
(
fileId
)
;
byte
[
]
bytes
=
FileHelper
.
getBytesFromStream
(
response
.
getBody
(
)
.
in
(
)
)
;
|
FileHelper.getBytesFromStream 代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public
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
;
}
|
保存到指定路径文件:
public static void saveBytesToFile(byte[] bytes,String path){try{
FileOutputStreamfileOuputStream=newFileOutputStream(path);
f ileOuputStream.write(bytes);
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
fileOuputStream.close();
}
}
本文出自 Lac,转载时请注明出处及相应链接。
本文永久链接: http://www.xueyong.net.cn/archives/39