Wysyłam żądanie w interfejsie API Dysku Google w wersji 3. Mam obraz Base64. Mam ten kod,Nie można otworzyć przesłanego pliku na Dysku Google przy użyciu interfejsu API
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);
}
};
Z tego wniosek, że console.log tę wiadomość: Object {kind: "drive#file", id: "0B0jyCEQS7DFib19iX2FLYm1yR28", name: "MyFileTitle", mimeType: "image/jpeg"}
Więc zakładając tu, że pomyślnie przesłany plik. Ale gdy sprawdzę plik na Dysku Google, nie mogę go otworzyć. Brak również podglądu pliku. Pobrałem plik, nadal nie mogę go otworzyć. Co tu jest nie tak? ktoś może mi pomóc?
To jest nagłówek odpowiedzi,
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
to mój nagłówek żądania,
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
Żądanie ładowność jest coś takiego,
ÿØÿàJFIFHHÿÛC ...
nadal nie można otworzyć plik.
To jest stworzenie pliku,
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);
}
Powyższy kod jest stworzenie pliku. Dodałem go, ponieważ być może problem leży w tej części.
aby wyjaśnić, plik jest na Dysku Google, ale nie możesz otworzyć jego zawartości? Kiedy ją pobierasz, jaki jest jej rozmiar i jak ten rozmiar ma się do oryginalnego obrazu? Czy próbowałeś sprawdzić pobieranie za pomocą edytora lub edytora szesnastkowego, aby zobaczyć, co w nim jest? – pinoyyid
Plik zawiera tekst treści żądania wieloczęściowego. – JMA
W swoim starym kodzie przed zmianą, czy możesz spróbować zmienić "BASE64" na "base64" jako demo w [tym wątku] (http://stackoverflow.com/questions/11923927/upload-a-file-to-google -drive-api-using-html5)? – noogui