我正在尝试将文件直接上传到保管箱 [从浏览器/Web 应用程序],代码 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]);
}