Dlaczego pliki docx, xlsx, pptx są pobierane z serwera jako pliki zip?

36

Na moim serwerze Apache zapisałem kilka plików docx, xlsx pptx.

Niektóre przeglądarki klienckie uważają, że tezy są zwykłymi plikami zip i zmieniają rozszerzenie pliku podczas pobierania. Jak sprawić, żeby już tego nie robić.

(Korzystanie z serwera Ubuntu)

daveilers
źródło
Te typy plików działają dobrze z IE9 bez wprowadzania żadnych zmian w htaccess, httpd.conf itp.

Odpowiedzi:

34

Pliki są w rzeczywistości ZIP-ami dokumentów XML. Dodaj to do swojego .htaccess w Apache

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
Kevin Kuphal
źródło
Miałem ten sam problem i dodałem go do .htaccess, ale to samo dzieje się w IE (nawet po usunięciu pamięci podręcznej). Czy musisz zrestartować Apache, aby to zadziałało?
supertrue
14

Serwer nie ma odpowiednich typów MIME skonfigurowanych dla nowych typów plików MS

dodaj poniższe do pliku /etc/mime.types i zrestartuj apache, a problem powinien zostać rozwiązany.

# 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 zawiera informacje o tym problemie

daveilers
źródło
ponieważ jest to mój serwer i mam dostęp do /etc/mime.types, jest to dla mnie najlepsza odpowiedź.
daveilers
w systemie Windows ścieżka może wyglądać następująco: <katalog instalacyjny dla apache> \ apache \ conf \ mime.types
AJ.
Nie działa z Apache2.4
rasanga
1

Mam pełną kontrolę administracyjną zarówno nad serwerem, jak i komputerem klienckim związanym z tym problemem, i ŻADNE z tych proponowanych rozwiązań nie rozwiązało problemu.

Ostatecznie jedyną rzeczą, która NAPRAWIŁA ten problem dla mnie było ...

1) odinstaluj 7-Zip (więc przeglądarka nie ma nic wspólnego z plikiem zip)

2) (Nie jestem pewien, czy ten krok jest wymagany, ale) Następnie ponownie pobrałem DOCX (gdzie przypadkowo nadal jest prezentowany jako plik ZIP), tym razem jednak pojawia się monit o podanie, w której aplikacji go otworzyć i Wybieram MSWORD. Nie wybieram „Zawsze otwieraj za pomocą MSWORD”, ponieważ nie chcę, aby MSWORD zawsze otwierał pliki ZIP.

3) Ponownie zainstaluj 7-Zip.

Następnie wszystkie kolejne próby pobrania DOCX spowodowały, że plik DOCX został pobrany i otwarty przy użyciu odpowiedniej aplikacji MSWORD.

UWAGA: Zanim dojdziesz do wniosku, że po prostu miałem zepsute skojarzenie plików, pozwól mi potwierdzić, że gdy ten problem występował, mogłem dwukrotnie kliknąć dowolny plik DOCX w Eksploratorze i MSWORD zawsze go otworzy. Ten problem występował zawsze i tylko podczas próby pobrania / otwarcia DOCX za pomocą IE8. FF4 i Chrome działały bezbłędnie. Próbowałem dodać odpowiednie typy MIME do / etc / mime-types i .htaccess po stronie serwera. Próbowałem także wyłączyć „Otwórz pliki na podstawie zawartości, a nie rozszerzenia pliku” (ale spowodowało to tylko otwarcie DOCX w przeglądarce jako nieczytelnego tekstu ASCII), ustawienie kluczy rejestru FEATURE_MIME_ * na „0” i dodanie adresu URL serwera do Lista „Zaufane witryny”. Ponownie, ŻADNE Z NIĄ WIDZIALNIE LOGICZNE ROZWIĄZANIA DZIAŁAŁO DLA MNIE.

Ken Banks
źródło
jest całkiem możliwe, że skojarzenie na pulpicie lokalnych plików .docx jest poprawne, ale nadal nie pasuje do plików application / vnd.openxmlformats-officedocument.wordprocessingml.document z serwera WWW. Sprawdź wartość rejestru HKCR \ .docx \ ContentType
James