我在我的网站上使用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>
我得到了这个:
[{&#34; URL&#34;:&#34; https://cdn.filepicker.io/api/file/--link1--&#34;}]
但是如何以这种方式获取URL值?:
任何人都有解决方案吗?
答案 0 :(得分:2)
你几乎就在那里,不是吗?
如何将[0].url
附加到返回的对象上?
我的意思是用result = JSON.stringify(Blobs, ['url']);
代替result = JSON.stringify(Blobs, ['url'])[0].url
;
更新
我的第一个回答是错的,因为
中的result
result = JSON.stringify(Blobs, ['url'])
返回'[{"url":"https://cdn.filepicker.io/api/file/--link1--"}]'
,这是一个字符串,因为它来自stringify
ed变量。因此,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
。
更新
或者,如果您想显示多个网址,由于多个文件会替换后一种方法
function(Blobs){
var displayedUrls = "";
for (i = 0; i < Blobs.length; i++) {
displayedUrls += Blobs[i].url + "<br>";
}
}
$('#files').html(displayedUrls);