का उपयोग कर रहा 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);
}
ऊपर कोड फ़ाइल की रचना है। मैंने इसे जोड़ा क्योंकि शायद इस हिस्से में समस्या है।
स्पष्ट करने के लिए, फ़ाइल Google डिस्क में वहाँ है, लेकिन आप इसकी सामग्री नहीं खोल सकता है? जब आप इसे डाउनलोड करते हैं, तो इसका आकार क्या होता है और यह आकार मूल छवि के साथ तुलना कैसे करता है? क्या आपने यह देखने के लिए एक संपादक या हेक्स संपादक का उपयोग करके डाउनलोड को देखने का प्रयास किया है? – pinoyyid
फ़ाइल बहुखण्डीय अनुरोध शरीर के पाठ है। – JMA
अपने पुराने कोड में इससे पहले कि आप बदल गया है, आप को बदलने की कोशिश कर सकते हैं "Base64" "बेस 64" [इस सूत्र] (में डेमो के रूप में http://stackoverflow.com/questions/11923927/upload-a-file-to-google ड्राइव-api-का उपयोग कर-एचटीएमएल 5)? – noogui