Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将CSV文件上载到dropbox.com格式问题_Javascript_Ajax_Google Chrome App_Dropbox Api_Export To Csv - Fatal编程技术网

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

Javascript 将CSV文件上载到dropbox.com格式问题,javascript,ajax,google-chrome-app,dropbox-api,export-to-csv,Javascript,Ajax,Google Chrome App,Dropbox Api,Export To Csv,我正在尝试创建一个chrome扩展,直接将文件上传到dropbox.com。除了csv格式之外,一切正常。下面的代码演示了如何创建和格式化文件,然后自动下载。当我打开它时,它看起来很好,问题是当我上传相同的文件格式到dropbox.com时,当我打开它之后: 无法识别“/n”(结束行) 将空格视为“%20”和 在文件“data:text/csv”开头追加;字符集=utf-8' 注意:同样,如果我直接下载到我的电脑上,所有的格式都是正确的,问题只是当我上传到box.com并打开它时 var c

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

  • 无法识别“
    /n
    ”(结束行)
  • 将空格视为“
    %20
    ”和
  • 在文件“
    data:text/csv”开头追加;字符集=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);
});

查看您的代码,看起来您正试图将
链接
(锚定标记?)作为数据传递。我想您应该传递
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);
});

请参阅并使用
base64
通过
btoa()
encodeURIComponent
编码,仅用于
localStorage[“Table”]
内容。我在将文件上载到Dropbox的代码中没有看到任何内容。你能分享那个代码吗?另外,您曾经提到过box.com,所以我不能100%确定您使用的是哪种产品。我只使用dropbox。我会在下面添加上传代码