Mam fragment kodu po stronie klienta, który eksportuje plik .docx z Dysku Google i wysyła dane do mojego serwera. Jest całkiem prosty, po prostu eksportuje plik, przekształca go w obiekt typu blob i wysyła kropelkę do punktu końcowego POST.Dlaczego nie mogę wyodrębnić pliku zip z żądania POST?
gapi.client.drive.files.export({
fileId: file_id,
mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
}).then(function (response) {
// the zip file data is now in response.body
var blob = new Blob([response.body], {type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"});
// send the blob to the server to extract
var request = new XMLHttpRequest();
request.open('POST', 'return-xml.php', true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.onload = function() {
// the extracted data is in the request.responseText
// do something with it
};
request.send(blob);
});
Oto mój serwer kodu po stronie, aby zapisać ten plik na moim serwerze, więc mogę robić rzeczy z nim:
<?php
file_put_contents('tmp/document.docx', fopen('php://input', 'r'));
Kiedy uruchamiam ten plik jest tworzony na moim serwerze. Uważam jednak, że jest uszkodzony, bo gdy próbuję go rozpakować (jak można zrobić z .docx), tak się dzieje:
$ mv tmp/document.docx tmp/document.zip
$ unzip tmp/document.zip
Archive: document.zip
error [document.zip]: missing 192760059 bytes in zipfile
(attempting to process anyway)
error [document.zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
Dlaczego nie jest to uznając go jako prawidłowego pliku .zip?
Uwaga dla przyszłego czytelnika: Nadal nie jestem pewien, jak to zrobić.Myślę, że po prostu starałem się zbyt mocno, aby dopasować kołek w kształcie pliku zip do dziury w kształcie znaku dostępu. Tak więc zrestrukturyzowałem aplikację, aby wywoływać wywołania luki w zapleczu i robić tam dane z wyodrębnionych danych. –