изображение из URL - сохранение в неверном формате php

1

Я использую плагин jquery-gdrive для выбора изображения, файла, документов с диска Google, и он возвращает URL-адрес. из url я сохраняю изображение на своем локальном диске, если я попытаюсь открыть изображение, показывающее недопустимое изображение, то же самое для выбора Dropbox также, как решить эту проблему?

вот мой URL-адрес google-gdrive://DSC_0031.jpg/0Bx-Ck9De1dkOeExfT1o2SEZWNDQ вот мой URL-адрес выбора 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));
?>

вот мой код выбора Dropbox

      <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 the chosen file: " + event.originalEvent.files[0].link);
     console.log(event.originalEvent.files[0].link);
});

  • 0
    спасибо за ваш ответ Магнус, я вошел в систему, в dropbox позвольте мне проверить еще раз, так что я должен сделать для URL-адреса gdrive, есть ли другой способ решить эту проблему?
  • 0
    Не имеет значения, если вы войдете в свой браузер, это не даст доступ к веб-серверу. Веб-сервер, как и должно быть, не знает о том, что браузер может получить доступ. Вам нужно использовать API Dropbox и Google Диски и проходить аутентификацию с помощью Oauth.
Показать ещё 1 комментарий
Теги:
image
google-drive-sdk
dropbox-api

3 ответа

3

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. Попросите "прямую ссылку" из Chooser вместо "ссылки предварительного просмотра" (по умолчанию). См. Https://www.dropbox.com/developers/chooser#js для получения подробной информации о том, как настроить Chooser с различными параметрами. Если вы попросите "прямую ссылку", вы получите ссылку непосредственно на содержимое файла.

# 2, вероятно, лучший вариант, так как он не имеет побочного эффекта совместного использования файла. (С ссылкой "Предварительный просмотр" пользователь увидит, что новая общая ссылка была создана при посещении www.dropbox.com/links.)

  • 0
    так что я могу сделать для Google Picker
  • 0
    Я не знаю. URL gdrive:// кажется, происходит от плагина jQuery, называемого jquery-gdrive . Вы можете спросить автора этой библиотеки?
1

Вы также можете попробовать этот https://www.dropbox.com/s/ruqu1bfrs371ntj/spokeless-bike.jpg?dl=1, который используется для загрузки файла, просто отметьте с помощью https://www.dropbox.com/помощь/201.

  • 0
    спасибо за ваш ответ, это помогает мне
0

Если вы открываете URL-адрес Dropbox в сеансе "inprivate" или в новом браузере, который не входит в систему для удаления, вы увидите, что вам будет предложено войти в Dropbox, прежде чем вы сможете получить доступ к изображению.

Веб-сервер (который запускает PHP-код) не входит в Dropbox и, скорее всего, получит и загрузит страницу входа, а не изображение.

URL-адрес Google Drive не является допустимым URL-адресом, поскольку он начинается с gdrive://. Ваш веб-сервер не имеет понятия, как его использовать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню