web-dev-qa-db-ja.com

docx、xlsx、pptxがZipファイルとしてWebサーバーからダウンロードされるのはなぜですか?

私のApacheサーバーには、いくつかのdocx、xlsx pptxファイルを保存しました。

一部のクライアントブラウザーは、これらが通常のZipファイルであると考え、ダウンロード時にファイル拡張子を変更します。どうすればそれができなくなりますか。

(Ubuntuサーバーを使用)

36
daveilers

ファイルは実際にはXMLドキュメントのZIPです。これをApacheの.htaccessに追加します

AddType application/vnd.ms-Word.document.macroEnabled.12 docm
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
AddType application/vnd.ms-PowerPoint.template.macroEnabled.12 potm
AddType application/vnd.openxmlformats-officedocument.presentationml.template potx
AddType application/vnd.ms-PowerPoint.addin.macroEnabled.12 ppam
AddType application/vnd.ms-PowerPoint.slideshow.macroEnabled.12 ppsm
AddType application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
AddType application/vnd.ms-PowerPoint.presentation.macroEnabled.12 pptm
AddType application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
AddType application/vnd.ms-Excel.addin.macroEnabled.12 xlam
AddType application/vnd.ms-Excel.sheet.binary.macroEnabled.12 xlsb
AddType application/vnd.ms-Excel.sheet.macroEnabled.12 xlsm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
AddType application/vnd.ms-Excel.template.macroEnabled.12 xltm
AddType application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
34
Kevin Kuphal

サーバーに新しいmsファイルタイプ用に設定された適切なMIMEタイプがありません

以下を/etc/mime.typesファイルに追加し、Apacheを再起動すると、問題が修正されます。

# Added by myname 2009-06-03
application/vnd.ms-Word.document.macroEnabled.12                        docm
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
application/vnd.ms-PowerPoint.template.macroEnabled.12                  potm
application/vnd.openxmlformats-officedocument.presentationml.template   potx
application/vnd.ms-PowerPoint.addin.macroEnabled.12                     ppam
application/vnd.ms-PowerPoint.slideshow.macroEnabled.12                 ppsm    
application/vnd.openxmlformats-officedocument.presentationml.slideshow  ppsx
application/vnd.ms-PowerPoint.presentation.macroEnabled.12              pptm
application/vnd.openxmlformats-officedocument.presentationml.presentation       pptx
application/vnd.ms-Excel.addin.macroEnabled.12                          xlam
application/vnd.ms-Excel.sheet.binary.macroEnabled.12                   xlsb
application/vnd.ms-Excel.sheet.macroEnabled.12                          xlsm
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet       xlsx    
application/vnd.ms-Excel.template.macroEnabled.12                       xltm    
application/vnd.openxmlformats-officedocument.spreadsheetml.template    xltx

http://www.webdeveloper.com/forum/showthread.php?t=162526 にはこの問題に関する情報があります

14
daveilers

Webサーバーがこれらのファイル内のマジックナンバーを見て、それらがZipファイルであることを確認しているようです。

見てください: http://www.webdeveloper.com/forum/showthread.php?t=162526

2
Evan Anderson

私はこの問題に関係するサーバーとクライアントマシンの両方を完全に管理しています。これらの提案された解決策のどれも、この問題を修正するために機能しませんでした。

結局のところ、この問題を修正したのは...

1)7-Zipをアンインストールします(ブラウザにはZipファイルに関連付けるものはありません)

2)(この手順が必要かどうかはわかりませんが)DOCXを再度ダウンロードしました(偶然にも、それはまだZipファイルとして表示されています)。ただし、今回はどのアプリケーションで開くかを尋ねられます。 MSWORDを選択します。 MSWORDで常にZipファイルを開く必要がないため、[常にMSWORDで開く]を選択しません。

3)7-Zipを再インストールします。

その後、その後DOCXをダウンロードしようとすると、実際にDOCXファイルがダウンロードされ、適切なMSWORDアプリケーションで開かれます。

注:ファイルの関連付けが壊れているという結論にジャンプする前に、この問題が発生したときにエクスプローラーでDOCXをダブルクリックすると、MSWORDが常にそれを開くことを確認します。この問題は常に、IE8でDOCXをダウンロードまたは開こうとしたときにのみ発生していました。 FF4とChrome=は問題なく動作しました。適切なMIMEタイプを/ etc/mime-typesと.htaccessにサーバー側で追加してみました。また、「コンテンツに基づいてファイルを開く、ファイル拡張子ではありません」(ただし、これによりブラウザはDOCXを読み取り不能として開くASCII text)、FEATURE_MIME_ *レジストリキーを「0」に設定し、サーバーURLを「信頼できるサイト」のリストです。繰り返しますが、私にとっては、これらの論理的な解決策はどれもうまくいきませんでした。

1
Ken Banks

http://packages.ubuntu.com/oneiric/mime-support をダウンロードし、dpkg -iを使用してインストールします。よくできました!

PS:UbuntuおよびDebian上のApacheは/etc/mime.typesから読み取ります

0
pauska