[英]How to download the google drive file content and save into corresponding file format using PHP
我正在使用Google Drive应用程序,需要使用PHP API下载内容并将内容写入相应的格式(例如word,Excel或ppt)。 请注意,文件不是本机格式,因此不会有下载网址。我正在使用导出链接下载内容。 我正在创建Google驱动器文档,表格和幻灯片格式的文件。
下面是我的代码
$file = $service->files->get($fileId);
$downloadUrl = $file['exportLinks']['application/vnd.openxmlformats-officedocument.wordprocessingml.document'];
if ($downloadUrl) {
$request = new Google_HttpRequest($downloadUrl, 'GET', null, null);
$httpRequest = Google_Client::$io->authenticatedRequest($request);
if ($httpRequest->getResponseHttpCode() == 200) {
$response = $httpRequest->getResponseBody();
} else {
// An error occurred.
return null;
}
} else {
return null;
}
一切正常,我也收到如下响应。
Google_HttpRequest Object
(
[batchHeaders:Google_HttpRequest:private] => Array
(
[Content-Type] => application/http
[Content-Transfer-Encoding] => binary
[MIME-Version] => 1.0
[Content-Length] =>
)
[url:protected] => https://docs.google.com/feeds/download/documents/export/Export?id=1aKI7o3g-eLNuLV7dAc-gS5oakhkwl3dLfVPaBBJX0Y4&exportFormat=docx
[requestMethod:protected] => GET
[requestHeaders:protected] => Array
(
[authorization] => Bearer ya29.IAHncRF0XeCjbX967QqIOb3IDVfowGgmmSC6SDssBW1yFXdfX4MlxbcqOB21CRW1HmVtyqMfC1QzgQ
)
[postBody:protected] =>
[userAgent:protected] => google-api-php-client/0.6.5
[responseHttpCode:protected] => 200
[responseHeaders:protected] => Array
(
[content-type] => application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=utf-8
[x-robots-tag] => noarchive
[content-disposition] => attachment;filename="asd.docx"
[set-cookie] => NID=67=W-YZgqChz2SoodlmbjJDk9WpVdCFMg9Z-mX2KgBxZrYyUUix0aXfKtVMnwZm6XQ4UOZG7NpHEC6XRwbMgTft4nAMQFQHUV4Z-9L1dEWkSlmKIoJLJhyyGhVQeh0r20Vz;Domain=.google.com;Path=/;Expires=Sat, 22-Aug-2015 07:36:01 GMT;HttpOnly
[p3p] => CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
[date] => Fri, 20 Feb 2015 07:36:01 GMT
[expires] => Fri, 20 Feb 2015 07:36:01 GMT
[cache-control] => private, max-age=0
[x-content-type-options] => nosniff
[x-frame-options] => SAMEORIGIN
[x-xss-protection] => 1; mode=block
[server] => GSE
[transfer-encoding] => chunked
[alternate-protocol] => 443:quic,p=0.08
)
[responseBody:protected] => PK€¼SFdocProps/app.xmlÁ
Â0D¿À¹kªI[Ñ«õ’m
´»!»Šþ½A={Þð˜±í}Ô
2GÂZÏg•V€žBľ֧ãnºÒŠÅap!Ôú¬Ûfb™d‰Àªk}IkcØ_`t<+é(NJ̽¡®‹¶ä¯# ˜EU-
Ü0@˜¦P¿ë›ü+
ä_ûø||¤âkì&¥!z'åd³'êP¥ÃÖük¾§š'PKoð„¬PK€¼SFdocProps/core.xmlmÏJÄ@‡ŸÀw(soÓ® RÚîÍ“‚
^‡LìÛùÃ$ÚîÛ;[´
î1ù}ùHÒí7Ÿ”Øß«¦ªUAƒ±~ìÕëËCy¯
íž‚§^‰Õ~¸é0¶=¥)‰%.²Ès‹±WG‘Ø0Éi®2ásø’Ó’Ë4BÔxÒ#Á®®ïÀ‘h£EÃEXÆͨ¾•7eüHÓ*04‘#/MÕÀ/+”_X“?¤³rŽtý 7za»ó¯§–Ö_^…¤†Î`+V&4›Ê\:ØZüûÞðPK}Š·–â‰PK€¼SFword/numbering.xml¥’Anƒ0EOÐ; ïHU…B³hÔnºk{€‰1`ÅöXcÍíë„-•*JWÆÿýïáowZE 'Ñdl³NX$Ç\š2cïoO«{9&…Fdì$Û=ÜlÛÔÔú (œ‹Â¸TóŒUÞÛ4Ž¯„·F+LH|x¥2Ö@ÇÚ®8j^¤’þß&É»b0c5™ôŠXiÉ þ,I±($×G¯ 9¾d¼ÖÂø‹cLB…h\%ëiz)-«Òüv‰F«þ\kç¸åmسVQ‹”[B.œ_÷Ýp n’<#Åœß=û$¤0çvL@ƒ÷:x_—vAwáÔœ ÝèEèô3,ØçW½•³ZüRk ]m'µ/·RI¿ï“äuÌXM&í-9¡ÃÂ$)…ä¢ûô
ã{’¬×ZtŒI¨ÐWIëzš¾•ŠUi~;D£U¿¯µcÜr‚6Ü…V'£)·„\8VW§â@œ%#x@Š1-üôì;Ñ Í€9$ã4xOƒw7´#ê|ó,œÓÈ©ô&·´¿în˜çw½•£R|A*_ÓÈ[¼ò=@ÝBPÈw"ÓÀæ¼çR.¡$Ðçº?Ýì,¹ˆËº+δò´WÂÚ²E÷úDmj@‡èmHlëÀóÑûšÅWå'’ ëq÷j-¾PK-ldv÷PK€¼SFword/styles.xmlíWíNÛ0}‚½C”ÿ¦”lª(¨±MblÝ8ŽÓxulËvZº§ŸoLY“R4ÆÚ?é½ö=××çøÆ9»¸O‰³DBbF'®íÃöéí¿Êvbƒ>Äb_‚Xìôï×݉žaUÜÅ·±\L|ïû³ëÕHä…¾ÉGÏÿ&ZwY¨ºŠ°žû/éÐ\äÿ;%úÏUâ-Ø—«òü7PKå 7.bPK€¼SFword/document.xmlíXKnÛ0=Aï@pËv"0âdQ#Ý4…§“#‰
);éÁz’R_§NR¸Ð6€´HçÍã›)èüò^I²Fç…Ñ3:)AÍ:›ÑÏ·W'g”øšƒ4gt‹ž^^¼9ßL¹a…BHDÐ~ªØŒæ!Øi’x–£?0u4¦Æ)±ë²D»+ì 3ÊB+!EØ&ãáðm`ÌŒNOˆ%˜3Þ¤¡t™š4›Gëá‰[»ÌÊUÄÄ¡ŒŒö¹°¾ESÇ¢EcÞ‚¬·ˆµ’í¼=$w°‰éP²´1Ž[gzGçµ±C
°„è<¡ðkÌ–‰¡;˜²8ö€ºØƒ»‚Ú-d§…—‡©MÅÊÛ>fGèùÐߊƒªx!z…ÂuyËÁ…@ƒ
»CþôºbæÙA弇ÄdÔ®Hýev4Ü+—ewhÙËÐ>8SXz7 °»,ö4'›)3ÒÄ઺hRÙ
ß–OÍqã‹6m†nî‰ÁÇCs”OÌ›c
…,U¸…+Þ‹tã\)4Þ2¾PSzC°\¶WSe§"ÍŒx
Ë`
²±'¼{Ñ
*„(Èý¥ÚÙ«uDzÖ¡G·Fzвwûñíû`0(}CðW(ÖJMú4÷öööö¾LÃg½+!‘ 9YmÉ2~úûœMÆcr:ÉâšôàëKx¯a¯áÿ á³çx/ž÷›ÌëKn¯á_:™ãyœ:ÁaK¾@<šßþÛ—Å#õ|›-¿F‡ÍŒŽÆãI…ŸÇöéÙ¤‘Ùf×P²“˜Æü&õ'²üA7»ë¬LF5ýãS¡n·£Õp¥gC®e’´¿E’ÝÜ‹ŸPKäöƒ¯PK€¼SFword/_rels/document.xml.rels’ÍJ1€ŸÀwsw³mEDšíE
½Êúivö‡&“LÅ}{£`°à‚‡=†!ß÷1Ìþðá¬xǘ&O
6U
Éøn¢AÁ[{¼‘XS§'T0c‚Cs·E«9ÿIã’ÈJ
Fæð,e2#:*ò¤÷ÑiÎÏ8È ÍE(·uý(ão47LÑê8 +è=q«Ï«ŒÑÎÿ#ò}?|ñæêøŸ,`§NAÇM6ÞkÈhc¨Åu5
‹Z¼ÍžË;Q ©`”‹j±“ñÕh¶M€‹ÖbI”î¥D½¯°Š Wš˜½"þÌ™”~W7ÃáÔ1*©õãÑ#4jå¨xÚðq’Á¡(ºÆ6«*%gµ"®Ëu0_RÊ}BÅÊ].mÂ7y4¡|°×½òd²5PLU¦å¹K~Äl¤‰zåYY¶9›Æjèõ[ÊQ"Ü»ª¯xeÃàÒÖ^ž¢ó=ßpäLÍ\ž ·>V~™U—‡èOA°|šcBÉaF€vC
˜’9d²§o¡ÏÖ1ÿâ¦Uÿ0±[; â©üÇâír÷£PKȤ›£H¨PK€¼SFoð„¬docProps/app.xmlPK€¼SF}Š·–â‰êdocProps/core.xmlPK€¼SF'œ±ÝX»word/numbering.xmlPK€¼SFˆê¢H©ˆ£word/settings.xmlPK€¼SF-ldv÷‹word/fontTable.xmlPK€¼SFå 7.bAword/styles.xmlPK€¼SFäöƒ¯à
word/document.xmlPK€¼SFin’øߨÎ
word/_rels/document.xml.relsPK€¼SF/]ãM÷_rels/.relsPK€¼SFȤ›£H¨[Content_Types].xmlPK
|œ
[accessKey] =>
)
如何将responseBody解码为原始格式并写入文件。 请提供一些示例代码。 我也需要对以下导出格式执行相同操作
谢谢
我知道迟到了,但这会帮助某人。 我花了一整天的时间来找出相同的问题。 发生的情况是浏览器无法翻译响应,因此您无法查看响应内容。 所有你要做的就是
file_put_contents('BULK/Sample_08_TemplateCloneRow.docx',$httpRequest->getResponseBody());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.