我正在尝试将照片上传到Flickr,但此代码抛出了未找到的文件的例外。图片位于文件夹中,但我不知道为什么Android会抛出异常。请帮忙。
OAuthRequest request = new OAuthRequest(Verb.POST,
"http://api.flickr.com/services/upload/");
service.signRequest(accessToken, request);
MultipartEntity entity = new MultipartEntity();
entity.addPart("photo", new FileBody(new File("/test/res/drawable-hdpi/icon.png"),
"image/png"));
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
entity.writeTo(out);
request.addPayload(out.toByteArray());
request.addHeader(entity.getContentType().getName(),
entity.getContentType().getValue());
Response response = request.send();
String body = response.getBody();
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
您无法通过绝对路径访问位于drawable
文件夹中的文件。
请尝试移动/assets
文件夹中的图片并通过getAssets()
访问该图片,或将其移至/res/raw
并通过R.raw.icon
访问该文件。
答案 1 :(得分:0)
尝试使用openRawResource(int id)
打开文件:
打开数据流以读取原始资源。这只能用于其值为资产文件名称的资源 - 也就是说,它可用于打开可绘制,声音和原始资源;它将在字符串和颜色资源上失败。
我认为FileBody
构造函数不接受InputStream
,因此您可能需要其他方法来发送二进制数据(文件)。