2017-03-21 11 views
0

ボタンをクリックするだけで、APIを使用して空のPDFファイルをGoogleドライブにアップロードしました。ajax urlのシステムからPDFファイルをアップロードする方法POSTメソッド呼び出し

<html> 

<body> 

<script type="text/javascript"> 

     $(document).ready(function(){ 

     $("button").click(function(){## Heading ## 
enter code here 
      $.ajax({ 

      url: 'https://www.googleapis.com/upload/drive/v2/files', 
      type: 'POST', 
      data: 'http://fddf3e6.ngrok.io/untitle.pdf', 
      contentType: 'application/pdf', 
      success: function() { 
console.log('Successfully File uploaded!'); 
}, 
      error: function() { 
console.log('Error while uploading file!!!'); 
}, 
      beforeSend: function(xhr) 
{ 

     xhr.setRequestHeader('Authorization', 'Bearer <accessToken>'); 

     } 

      }); 

     }); 

     }); 

</script> 

<button>Send</button> 

</body> 

</html> 

データオブジェクトとしてPDFファイルの場所のURLを指定しましたが、PDFファイルの内容としてURLを取得しました。私が割り当てたGoogleドライブにPDFファイルをアップロードする方法。

ここで、ユーザーにトークンとGoogleドライブAPIにアクセスさせることで、空のPDFファイルをドライブにアップロードできます。アップロードしたいPDFファイルを選択するだけで助けが必要です。どうすれば選べますか?

答えて

0

関連するSO postに記載されているように、URLを使用してファイルをアップロードすることはできません。コンテンツをメモリにバッファしてからアップロードすることができます。

postからこのコードを使用すると、ファイルの内容を取得できます。

var base64Data = btoa(e.target.result); 
     var multipartRequestBody = 
      delimiter + 'Content-Type: application/json\r\n\r\n' + 
      JSON.stringify(metadata) + 
      delimiter + 'Content-Type: ' + contentType + '\r\n' + 
      'Content-Transfer-Encoding: base64\r\n' + '\r\n' + 
      base64Data + close_delim; 

     $.ajax({ 
      url: 'https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart', 
      type: 'POST', 
      headers: { 
      "Authorization": 'Bearer ' + ACCESS_TOKEN, 
      "Content-Type": 'multipart/related; boundary="'+ boundary + '"' 
      }, 
      success: function() { 
      // TODO XIN 
      console.log('>>> DONE'); 
      }, 
      error: _handleUploadErrors, 
      data: multipartRequestBody, 
      cache: false, 
      contentType: false, 
      processData: false, 
      crossDomain: true 
     }); 

アップロードするファイルの種類に合わせてアップロードの種類を設定することもできます。

  • シンプルアップロード:uploadType=media。小さなファイル(5 MB以下)をすばやく転送するため。簡単なアップロードを実行するには、Performing a Simple Uploadを参照してください。
  • マルチパートアップロード:uploadType=multipart小さなファイル(5 MB以下)とそのファイルを記述するメタデータをすばやく転送するためのものです。マルチパートアップロードを実行するには、Performing a Multipart Uploadを参照してください。
  • 再アップロード可能:uploadType=resumable。より信頼性の高い転送、特に大容量のファイルでは重要です。再開可能なアップロードは、アップロードごとに1つの追加のHTTPリクエストを犠牲にして小さなファイルでも機能するため、ほとんどのアプリケーションに適しています。再開可能なアップロードを実行するには、Performing a Resumable Uploadを参照してください。

希望します。

関連する問題