0

写真を 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();
}
4

2 に答える 2

0

drawableフォルダ内のファイルに絶対パスでアクセスすることはできません。

代わりに、/assetsフォルダ内の画像を移動してアクセスするgetAssets()か、移動して/res/rawからアクセスしてみてR.raw.iconください。

于 2013-03-06T21:42:11.700 に答える
0

次のコマンドでファイルを開いてみてくださいopenRawResource(int id)

生のリソースを読み取るためのデータストリームを開きます。これは、値がアセットファイルの名前であるリソースでのみ使用できます。つまり、ドローアブル、サウンド、およびrawリソースを開くために使用できます。文字列と色のリソースでは失敗します。

FileBodyコンストラクターはを受け入れないと思うInputStreamので、バイナリデータ(ファイル)を送信するには他のメソッドが必要になる可能性があります。

于 2013-03-06T22:08:32.437 に答える