一般社団法人 全国個人事業主支援協会

COLUMN コラム

今月よりフリーランスエンジニアとして働き始めました。

 

初月は前任者からの引継ぎが完了し、来月から本格的に業務がスタートします。

 

今月、私が新しく知ったことを共有させていただきます。

 

【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」を
直接指定してアップロードすることで解決しました。

 

以上です。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア