我使用jquery gdrive插件从谷歌驱动器中选择图像、文件、文档,它返回url。从url我将图像存储到我的本地磁盘,如果我试图打开图像,它会显示无效的图像,同样的事情对于dropbox选择器来说,如何解决这个问题?
这是我的谷歌硬盘网址-gdrive://DSC_0031.jpg/0Bx-Ck9De1dkOeExfT1o2SEZWNDQ这是我的dropbox选择器网址-https://www.dropbox.com/s/ruqu1bfrs371ntj/spokeless-bike.jpg?dl=0
<html>
<head>
</head>
<body>
<form name="imageUpload" action="" method="POST" enctype="multipart/form-data">
<input id="gdrive_file" type="text" name="imageToUpload"> <a href="#" id="gdrive_file_selector">Select file</a><br/>
<div class="submitBtn">
<input type="submit" name="submit" value="SUBMIT">
</div>
</form>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript" src="//apis.google.com/js/client.js"></script>
<script type="text/javascript" src="../jquery-gdrive.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$().gdrive('init', {
'devkey': 'xxxxxxxxxxxxxx',
'appid': 'xxxxxxxxxxxxxxx'
});
$('#gdrive_file').gdrive('set', {
'trigger': 'gdrive_file_selector',
'header': 'Select a file',
'filter': ''
});
$('#gdrive_folder').gdrive('set', {
'trigger': 'gdrive_folder_selector',
'header': 'Select a folder',
'filter': 'application/vnd.google-apps.folder'
});
});
</script>
</body>
<?php
$image = $_POST['imageToUpload'];
$s = basename($image);
file_put_contents("uploads/$s", file_get_contents($image));
?>
这是我的投递箱选择器代码
<script type="text/javascript" src="https://www.dropbox.com/static/api/1/dropins.js" id="dropboxjs" data-app-key="6s50p5csnfjties"></script>
<!-- Replace data-app-key with yours -->
</head>
<body>
<form action="" method="POST">
<input type="dropbox-chooser" name="selected-file" id="db-chooser"/>
<input type="submit" name="submit" id="sub" value="Submit" />
</form>
</body>
<script type="text/javascript">
$("#db-chooser").on('DbxChooserSuccess',function(event)
{
alert("Here's the chosen file: " + event.originalEvent.files[0].link);
console.log(event.originalEvent.files[0].link);
});
https://www.dropbox.com/s/ruqu1bfrs371ntj/spokeless-bike.jpg?dl=0不是指向图像的链接。这是一个链接到一个有图像的网页。有两种方法可以获得你想要的链接:
- 尝试https://www.dropbox.com/s/ruqu1bfrs371ntj/spokeless-bike.jpg?raw=1相反(注意
?raw=1
。)请参阅https://www.dropbox.com/help/201了解共享链接以及如何将它们转换为指向内容的直接链接 - 从选择器中请求"直接链接",而不是"预览链接"(默认设置)。看见https://www.dropbox.com/developers/chooser#js有关如何使用不同选项设置"选择器"的详细信息。如果你要求一个"直接链接",你会得到一个直接指向文件内容的链接
#2可能是更好的选择,因为它没有共享文件的副作用。(通过"预览链接",用户在访问www.dropbox.com/links时会看到一个新的共享链接已经创建。)
如果您在"inprivate"会话中或在未登录dropbox的新浏览器中打开dropbox URL,您会看到系统提示您登录dropbox,然后才能访问图像。
web服务器(运行PHP代码)没有登录到dropbox,很可能只获取和下载登录页面,而不是图像。
Google Drive URL不是一个有效的URL,因为它以gdrive://开头。你的网络服务器不知道如何使用它。
你也可以试试这个https://www.dropbox.com/s/ruqu1bfrs371ntj/spokeless-bike.jpg?dl=1用于下载文件的,只需使用https://www.dropbox.com/help/201.