url中的图像-存储为无效格式php


image from url - storing as invalid format php

我使用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不是指向图像的链接。这是一个链接到一个有图像的网页。有两种方法可以获得你想要的链接:

  1. 尝试https://www.dropbox.com/s/ruqu1bfrs371ntj/spokeless-bike.jpg?raw=1相反(注意?raw=1。)请参阅https://www.dropbox.com/help/201了解共享链接以及如何将它们转换为指向内容的直接链接
  2. 从选择器中请求"直接链接",而不是"预览链接"(默认设置)。看见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.