5

का उपयोग कर रहा Google डिस्क API संस्करण 3. में एक अनुरोध भेज रहा हूँ मैं एक Base64 छवि है Google डिस्क में अपलोड की गई फ़ाइल नहीं खोल सकते। Object {kind: "drive#file", id: "0B0jyCEQS7DFib19iX2FLYm1yR28", name: "MyFileTitle", mimeType: "image/jpeg"}एपीआई

तो मैं यहाँ यह सोचते हैं मैं सफलतापूर्वक एक फ़ाइल अपलोड की है: मैं मैं इस संदेश को console.log इस कोड है,

var callback = function(ret, raw) { 
    var obj = $.parseJSON(raw); 
    self.uploadUrl = obj.gapiRequest["data"]["headers"]["location"]; 
    const boundary = '-------314159265358979323846'; 
     const delimiter = "\r\n--" + boundary + "\r\n"; 
     const close_delim = "\r\n--" + boundary + "--"; 

     var reader = new FileReader(); 
     reader.readAsBinaryString(data); 
     reader.onload = function(e) { 
     console.log(reader.result); 
     var contentType = data.type || 'application/octet-stream'; 
     var metadata = { 
      'name': data.name, 
      'mimeType': contentType 
     }; 

     var base64Data = btoa(reader.result); 
     var multipartRequestBody = reader.result; 
     console.log(self.uploadUrl); 
     var request = gapi.client.request({ 
      'path': self.uploadUrl.replace('https://www.googleapis.com', ''), 
      'method': 'PUT', 
      'headers': { 
       'Authorization': 'Bearer ' + self.state.token, 'Content-Length': data.size, 'Content-Type': data.type 
      }, 
      'body': multipartRequestBody}); 
      var callback2 = function(file) { 
      console.log(file) 
      }; 
     request.execute(callback2); 
     } 

    }; 
उस अनुरोध के साथ

,। लेकिन जब मैं Google ड्राइव में फ़ाइल की जांच करता हूं, तो मैं इसे खोल नहीं सकता। फ़ाइल का कोई पूर्वावलोकन भी नहीं। मैंने फ़ाइल डाउनलोड की है, अभी भी इसे खोल नहीं सकता है। यहाँ क्या गलत है? कोई मुझे मदद कर सकता है?

यह प्रतिक्रिया हेडर है

Request URL:https://content.googleapis.com/upload/drive/v3/files?uploadType=resumable&upload_id=AEnB2UoIhN3QtsUc1qLW5N_3yG-NOyl9Nm-maYY7T5X4dQbMK_hxu9M-E9L1247jeLEtRQJd8w8IA_GH_6HSWbNrFnocfmt31-oA0iXXHTcZE7k2aIIAvHQ 
Request Method:PUT 
Status Code:200 
Remote Address:216.58.197.170:443 

यह मेरा अनुरोध हेडर,

Authorization:Bearer <MY_TOKEN> 
Content-Type:image/jpeg 
Origin:https://content.googleapis.com 
X-Requested-With:XMLHttpRequest 

uploadType:resumable 
upload_id:AEnB2UoIhN3QtsUc1qLW5N_3yG-NOyl9Nm-maYY7T5X4dQbMK_hxu9M-E9L1247jeLEtRQJd8w8IA_GH_6HSWbNrFnocfmt31-oA0iXXHTcZE7k2aIIAvHQ 

अनुरोध पेलोड कुछ इस तरह है,

ÿØÿàJFIFHHÿÛC  ... 

फिर भी नहीं खोल सकते है फ़ाइल।

इस फ़ाइल की रचना है,

submitForm(e){ 
e.preventDefault(); 
var data = this.refs.file.files[0]; 
var self = this; 
var metadata = { 
    'Content-Length': data.size, 
    'name': data.name 
}; 

var contentType = data.type; 
var multipartRequestBody = JSON.stringify(metadata); 
var request = gapi.client.request({ 
    'path': '/upload/drive/v3/files', 
     'method': 'POST', 
    'params': {'uploadType': 'resumable'}, 
    'headers': { 
      'Authorization': 'Bearer ' + self.state.token, 'Content-Type': 'application/json; charset=UTF-8', 'X-Upload-Content-Type': data.type, 'X-Upload-Content-Length': data.size 
     }, 
    'body': multipartRequestBody}); 

var callback = ... 

request.execute(callback); 
} 

ऊपर कोड फ़ाइल की रचना है। मैंने इसे जोड़ा क्योंकि शायद इस हिस्से में समस्या है।

+0

स्पष्ट करने के लिए, फ़ाइल Google डिस्क में वहाँ है, लेकिन आप इसकी सामग्री नहीं खोल सकता है? जब आप इसे डाउनलोड करते हैं, तो इसका आकार क्या होता है और यह आकार मूल छवि के साथ तुलना कैसे करता है? क्या आपने यह देखने के लिए एक संपादक या हेक्स संपादक का उपयोग करके डाउनलोड को देखने का प्रयास किया है? – pinoyyid

+0

फ़ाइल बहुखण्डीय अनुरोध शरीर के पाठ है। – JMA

+0

अपने पुराने कोड में इससे पहले कि आप बदल गया है, आप को बदलने की कोशिश कर सकते हैं "Base64" "बेस 64" [इस सूत्र] (में डेमो के रूप में http://stackoverflow.com/questions/11923927/upload-a-file-to-google ड्राइव-api-का उपयोग कर-एचटीएमएल 5)? – noogui

उत्तर

0

वस्तु {तरह: "ड्राइव # फ़ाइल", आईडी: "0B0jyCEQS7DFib19iX2FLYm1yR28", नाम: "MyFileTitle", माइम प्रकार: "image/jpeg"}

आप प्रकार image/jpeg की एक फ़ाइल अपलोड कर रहे लेकिन नाम MyFileTitle है। मुझे लगता है कि आप ड्राइव को भ्रमित कर रहे हैं, यह फ़ाइल खोल नहीं सकता है अगर यह नहीं जानता कि यह क्या है।

MyFileTitle.jpg करने के लिए इसे बदलने का प्रयास करें।