0

我在我的网站上使用 FileStack,根据 FileStack Docs 我实际上有这个:

<iframe id="framefile" width="700" height="500" frameborder="0">
<p>Your browser does not support iframes.</p>
</iframe>
<div id="files"></div>

在javascript方面:

<script src="http://code.jquery.com/jquery-1.12.0.min.js"></script>
<script type="text/javascript" src="http://api.filepicker.io/v2/filepicker.js"></script>

<script type="text/javascript">
filepicker.setKey("myAPIKey");
filepicker.pickMultiple(
  {
    mimetype: '*/*',
    language: 'es_mx',
    container: 'framefile',
    services: ['COMPUTER','GOOGLE_DRIVE','DROPBOX']
  },
  function(Blobs){
    console.log(JSON.stringify(Blobs));
  },
  function(FPError){
    console.log(FPError.toString());
  });
  </script>

我只需要获取 URL 文件值并将其放入 div 中。我试过这个:

<script type="text/javascript">
filepicker.setKey("myAPIKey");
filepicker.pickMultiple(
  {
    mimetype: '*/*',
    language: 'es_mx',
    container: 'framefile',
    services: ['COMPUTER','GOOGLE_DRIVE','DROPBOX']
  },
  function(Blobs){
    console.log(JSON.stringify(Blobs));
    var result = JSON.stringify(Blobs, ['url']);
    $('#files').html(result);
  },
  function(FPError){
    console.log(FPError.toString());
  });
</script>

我得到这个:

[{"url":" https://cdn.filepicker.io/api/file/--link1-- "}]

但是我怎样才能获得 URL 值但以这种方式?:

https://cdn.filepicker.io/api/file/--link1--

有人有解决方案吗?

4

1 回答 1

2

你快到了,不是吗?

附加[0].url到返回的对象怎么样?

我的意思是替换result = JSON.stringify(Blobs, ['url']);;result = JSON.stringify(Blobs, ['url'])[0].url

更新

我的第一个答案是错误的,因为result

result = JSON.stringify(Blobs, ['url'])

return '[{"url":"https://cdn.filepicker.io/api/file/--link1--"}]',这是一个字符串,因为它来自一个stringifyed 变量。因此,result[0]返回它的第一个字符,即"[". 最后result[0].url或不同的说法,"[".url是未定义的。(几乎不可能如此)

替换这部分:

function(Blobs){
    console.log(JSON.stringify(Blobs));
    var result = JSON.stringify(Blobs, ['url']);
    $('#files').html(result);
}

经过

function(Blobs){
    $('#files').html(Blobs[0].url);
}

如果想从 json 中获取所需的信息,stringify那一定不能。

更新

或者如果你想显示多个 url,因为多个文件替换后一种方法

function(Blobs){
    var displayedUrls = "";
    for (i = 0; i < Blobs.length; i++) { 
        displayedUrls += Blobs[i].url + "<br>";
    }
}
$('#files').html(displayedUrls);
于 2016-11-29T17:26:31.390 回答