1

ドロップボックスの Java API を使用して、.doc ファイル jpg やビデオ ファイルなどのバイナリ ファイルをアップロードする方法の例を見つけることができるコードまたは URL を教えてください。

Web の現在の例は、テキスト ファイルのアップロードのみを示しています。しかし、Java InputStream を使用してファイルを読み取ろうとし、それらをバイト配列に変換してドロップボックス ファイル アップロード関数に渡すと、ファイルが破損します。ファイルのダウンロードでも同じ問題が発生します。前もって感謝します。

よろしく、ワルナ。

編集 -- コードサンプル

FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte [] buf = new byte[1024];
for(int readNum; (readNum = fis.read(buf)) != -1;) {
    bos.write(buf, 0, readNum);
    System.out.println("read "+ readNum + "bytes,");
}

ByteArrayInputStream inputStream2 = new ByteArrayInputStream(bos.toByteArray());

Entry newEntry = mDBApi.putFile("/uploads/"+file.getName(), inputStream2, file.toString().length(), null, null);
System.out.println("Done. \nRevision of file: " + newEntry.rev + " " + newEntry.mimeType);
return newEntry.rev;
4

2 に答える 2

1

の 3 番目の引数はDropboxAPI.putFile()、入力ストリームから読み取るバイト数にする必要があります。ファイル名の長さを渡しています。

それ以外の

Entry newEntry = mDBApi.putFile("/uploads/"+file.getName(), inputStream2,
            file.toString().length(), null, null);

使用する

Entry newEntry = mDBApi.putFile("/uploads/"+file.getName(), inputStream2,
            bos.size(), null, null);
于 2012-04-15T00:01:59.167 に答える
0

バイト配列に変換する必要はないと思います。ファイル、txt、およびバイナリにはFileInputStreamを使用するだけで十分です。次のコードは機能します。JPGでテストしました。

    DropboxAPI<?> client = new DropboxAPI<WebAuthSession>(session);

    FileInputStream inputStream = null;
    try {
        File file = new File("some_pic.jpg");
        inputStream = new FileInputStream(file);
        DropboxAPI.Entry newEntry = client.putFile("/testing.jpg", inputStream,
                file.length(), null, null);
        System.out.println("The uploaded file's rev is: " + newEntry.rev);
    } catch (DropboxUnlinkedException e) {
        // User has unlinked, ask them to link again here.
        System.out.println("User has unlinked.");
    } catch (DropboxException e) {
        System.out.println("Something went wrong while uploading.");
    } catch (FileNotFoundException e) {
        System.out.println("File not found.");
    } finally {
        if (inputStream != null) {
            try {
                inputStream.close();
            } catch (IOException e) {}
        }
    }
于 2012-07-11T17:35:53.447 に答える