Javascript 使用Dropbox API V2+将文件上载到Dropbox;科罗德瓦
是否有人能够使用Cordova应用程序中Dropbox API V2的Javascript SDK将文件上载到Dropbox?我查看了Dropbox-sdk.js文件以获取上传文件的方法,但所有方法都需要我们要上传到Dropbox的文件的内容。我们如何提供文件的内容? “使用输入类型文件”元素获取要上载到Dropbox的文件。但如果是科尔多瓦,怎么办?我们如何传递文件的内容 下面是我上传文件到Dropbox的代码,但当我试图打开上传的文件时,它会显示没有内容的pdf文件Javascript 使用Dropbox API V2+将文件上载到Dropbox;科罗德瓦,javascript,cordova,dropbox-api,Javascript,Cordova,Dropbox Api,是否有人能够使用Cordova应用程序中Dropbox API V2的Javascript SDK将文件上载到Dropbox?我查看了Dropbox-sdk.js文件以获取上传文件的方法,但所有方法都需要我们要上传到Dropbox的文件的内容。我们如何提供文件的内容? “使用输入类型文件”元素获取要上载到Dropbox的文件。但如果是科尔多瓦,怎么办?我们如何传递文件的内容 下面是我上传文件到Dropbox的代码,但当我试图打开上传的文件时,它会显示没有内容的pdf文件 function up
function uploadFile(tmpStrListStr)
{
var tmpStrList = "";
var uploadSuccess = false;
tmpStrList = tmpStrListStr.substring(0, tmpStrListStr.length-1).split(",");
istrue = true;
for(var i = 0 ; i < tmpStrList.length; i++)
{
var path = cordova.file.externalRootDirectory+'/Test/Logs/'+tmpStrList[i] + '.pdf';
window.resolveLocalFileSystemURL(path, function (fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
var ACCESS_TOKEN = localStorage.accessToken;
var dbx = new Dropbox({ accessToken: ACCESS_TOKEN });
var fileCommitInfo = {};
fileCommitInfo.contents = reader.result;
fileCommitInfo.path = '/' + fileEntry.name;
fileCommitInfo.mode = { '.tag': 'overwrite' };
fileCommitInfo.autorename = true;
fileCommitInfo.mute = true;
dbx.filesUpload(fileCommitInfo)
.then(function(response) {
alert(response);
})
.catch(function(errr) {
console.log(errr);
});
}
reader.readAsDataURL(file);
});
}, function (e) {
console.log("FileSystem Error");
console.dir(e);
});
}
}
函数上传文件(tmpStrListStr)
{
var tmpStrList=“”;
var uploadSuccess=false;
tmpStrList=tmpStrListStr.substring(0,tmpStrListStr.length-1)。拆分(“,”;
istrue=真;
对于(变量i=0;i
有没有其他方法可以在不使用Javascript SDK的情况下为Cordova应用程序实现Dropbox功能(API V2)
世界上有没有人能告诉我如何使用Javascript SDK V2将文件上传到Dropbox?读取使用XMLHttpRequest的文件内容。从响应中,创建一个blob对象,然后将其设置为FilesUpload方法的contents参数
function UploadNewFile() {
var rawFile = new XMLHttpRequest();
rawFile.responseType = 'arraybuffer';
rawFile.open("GET", "Your file Path Here", true);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var blobObj = new Blob([rawFile.response],{ type: 'application/pdf',endings: 'native' });
dbx = new Dropbox({accessToken: "Your Access Token"});
if (dbx != null) {
dbx.filesUpload({
path:'/' + "File Name Here"+ '.pdf',
contents: blobObj,
mode: 'overwrite',
mute: true
}).then(function (response) {
var showmsg = "File Upload Complete";
reset();
alertify.alert(showmsg, function (e)
{
if (e)
{
//Code to be executed after your files are successfully uploaded to Dropbox.
}
});
}
}).catch(function (error) {
var showmsg = "Error saving file to your Dropbox!";
reset();
alertify.alert(showmsg);
});
};
}
}
}
rawFile.send(null);
}
参考资料:看起来您在应用程序中填写了正确的参数。能否检查
reader.result
的值是多少?reader.result以base64编码字符串的形式包含文件的数据。它不应该是base64编码的,但在那里提供字符串通常是可以的,因此不需要获取空文件。您得到的是响应
还是错误
?请分享你得到的结果。@Nikhil如果你找到了解决方案,请在这里发布。蒂亚@Devashish很抱歉延迟回复。。。。!我在下面补充了答案。看一看