[ブラウザ/ウェブ アプリケーションから] ドロップボックスにファイルを直接アップロードしようとしています。コード API の「uploadFile」機能では、ファイルをアップロードしてサーバーで使用できるようにする必要があります。ファイルをサーバーにアップロードし、そこからドロップボックスにアップロードします。
$f = fopen("test.jpg", "rb"); // requires file on server
$result = $dbxClient->uploadFile("test.jpg", dbx\WriteMode::add(), $f);
fclose($f);
これを試してみましたhttps://github.com/dropbox/dropbox-js明確なドキュメントがなく、ドキュメント部分のリンクの多くが壊れていると言ってがっかりしました。
ファイルを自分のアカウントにアップロードする必要があり、クライアントはドロップボックスにログインする必要はありません。
任意のポインタは本当に高く評価されます. Ajax / JavaScript メソッドを探しています。
アップデート
以下を試しましたが、Dropbox からの応答がありません
HTML
<input type="file" name="file" id="file" onchange="doUpload(event)">
JavaScript
var doUpload = function(event){
var input = event.target;
var reader = new FileReader();
reader.onload = function(){
var arrayBuffer = reader.result;
$.ajax({
url: "https://api-content.dropbox.com/1/files_put/auto/uploads/" + input.files[0].name,
headers: {
Authorization: 'Bearer ' + MyAccessToken,
contentLength: file.size
},
crossDomain: true,
crossOrigin: true,
type: 'PUT',
contentType: input.files[0].type,
data: arrayBuffer,
dataType: 'json',
processData: false,
success : function(result) {
$('#uploadResults').html(result);
}
});
}
reader.readAsArrayBuffer(input.files[0]);
}