将CSV文件上载到dropbox.com格式问题



我正在尝试创建一个chrome扩展,将文件直接上传到dropbox.com。除了csv格式外,一切都很好。下面的代码展示了我如何创建和格式化文件,然后我自动下载它。当我打开它时,它看起来很好,问题是当我将相同的文件格式上传到dropbox.com时,当我随后打开它时:

  • 无法识别"/n"(端线)
  • 将空白视为"%20"
  • 追加在文件"data:text/csv;charset=utf-8"的开头

注意:同样,如果我直接下载到我的电脑上,所有的格式都可以,问题只是当我上传到box.com并打开它时。

var csvContent = "data:text/csv;charset=utf-8,";
csvContent += localStorage["Table"];
var date = new Date();
// filename contains the unique user id + a timestamp of the current date with year, month, day, hours, minutes, seconds
var filename=uniqueID +"  "+date.getYear()+ "-" +date.getMonth() +"-" +date.getDate() +": " +date.getHours() + "." +date.getMinutes() +": "+date.getSeconds()+".csv";
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", filename);
link.click();

这是将文件上传到dropbox 的代码

var uploadUrl = 'https://api-content.dropbox.com/1/files_put/dropbox/folder/'+filename;

var headers = {
    Authorization: 'Bearer '+localStorage.authorization_token
};
$.ajax({
    url: uploadUrl,
    headers: headers,
    type: 'PUT',
    // This prevents JQuery from trying to append the form as a querystring
    processData: false,
    contentType: false,
    data: link
}).complete(function ( data ) {
    // Log the JSON response to prove this worked
    console.log(data.responseText);
});

查看您的代码,您似乎正在尝试将link(锚标记?)作为数据传递。我想你想通过localStorage["Table"],我推测这就是实际CSV所在的位置。

所以试试这样的东西:

$.ajax({
    url: uploadUrl,
    headers: headers,
    type: 'PUT',
    // This prevents JQuery from trying to append the form as a querystring
    processData: false,
    contentType: false,
    data: localStorage["Table"]
}).complete(function ( data ) {
    // Log the JSON response to prove this worked
    console.log(data.responseText);
});

相关内容

最新更新