今月よりフリーランスエンジニアとして働き始めました。
初月は前任者からの引継ぎが完了し、来月から本格的に業務がスタートします。
今月、私が新しく知ったことを共有させていただきます。
【Microsoft Office 2007以降のファイルのMIMEタイプがZIPになってしまう】
ファイルの種類を表すMIME(マイム)タイプというものがあります。
例えば、テキストファイル(拡張子:txt)のMIMEは「text/plain」、
JPEG画像(拡張子:jpg)のMIMEのは「image/jpeg」となります。
この度、つまづいたのはExcelファイルのMIMEタイプがExcelとして認識されないということです。
ファイルからMIMEタイプを取得するPHP関数mime_content_typeがあり、
Excelファイルに対してその関数を実行したところ、
圧縮ファイル(拡張子:zip)として認識されてしまいました。
調べたところ、Office 2007以降のファイル(Word:docx、Excel:xlsx、PowerPoint:pptx)のように
拡張子の末尾に「x」が付いているものは圧縮されており、
zipファイルとして認識されてしまうようです。
たしかに、以前Office 2007より前のファイルと比べると、
ファイルサイズが小さくなっていた記憶がありましたので、
zipファイルとして圧縮されているのであれば納得です。
今回は、Google Drive APIにてExcelファイルをアップロードする際、
Excelとしてアップロードできなかったため上記のことに気づきましたが、
本来のExcel(拡張子:xlsx)のMIMEタイプ「application/vnd.openxmlformats-officedocument.spreadsheetml.sheet」を
直接指定してアップロードすることで解決しました。
以上です。
The following two tabs change content below.