如何访问图像路径?

时间:2013-03-06 21:36:11

标签: java android filenotfoundexception

我正在尝试将照片上传到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();
}

2 个答案:

答案 0 :(得分:0)

您无法通过绝对路径访问位于drawable文件夹中的文件。

请尝试移动/assets文件夹中的图片并通过getAssets()访问该图片,或将其移至/res/raw并通过R.raw.icon访问该文件。

答案 1 :(得分:0)

尝试使用openRawResource(int id)打开文件:

  

打开数据流以读取原始资源。这只能用于其值为资产文件名称的资源 - 也就是说,它可用于打开可绘制,声音和原始资源;它将在字符串和颜色资源上失败。

我认为FileBody构造函数不接受InputStream,因此您可能需要其他方法来发送二进制数据(文件)。