Lördag, 21 februari, 2009 | Författare:

De relativt nya dokumenttyper Kontors 2007 har gett en del webbhotell problem när deras kunder vill erbjuda dokument för nedladdning. Oftast, dokumenten som erbjuds av webbservern som “text / html” som sedan återges som ett ton skräp på nätet användarens skärm.

Det bästa sättet att lösa detta är att lägga all MIME slag till serverns huvud konfiguration. IIS7 för Windows redan har dessa MIME-typer inställd som standard. IIS6 och IIS5 kräver MIME-typer som ska läggas, som kanske Apache på äldre installationer. För Apache, finns det också en lösning för den enskilde ägaren domänen för att lägga till MIME-typer via Apaches .htaccess fil.

IIS 6 MIME-typ tillägg (för Server Administrator)

Innan detta kan göras, se till att din server är också inställd på att tillåta direkt metabasen redigering:

  1. Belastning IIS-hanteraren: Start -> Run, “inetmgr” -> [OK]
  2. Högerklicka på “server” och klicka “Properties”
  3. Inom “Internet Information Services” flik (oftast den enda fliken), säkerställa att den “Enkunna Direkt Meta Redigera” kryssrutan är markerad.
  4. Klicka [OK]

Se till att Säkerhetskopiera IIS konfiguration (här för IIS5) förhand. Jag kommer inte att ta något ansvar för en admin bryta hans server. Jag har anledning att tro detta får också arbeta på IIS5 men jag har lika mycket anledning att tro att det bara kan ge massor av fel. Om en IIS5 / Windows 2000 admin är villig att testa detta för mig efter säkerhetskopieringen konfigurationen låt mig veta om resultaten.

Kopiera följande text i en fil med namnet msoff07-addmime.vbs och exekvera den en gång från kommandoraden genom att skriva cscript msoff07-addmime.vbs och trycka på Enter. Om du kör den mer än en gång, MIME-typerna kommer varje gång och du kommer att ha flera identiska poster:

"Detta skript lägger den nödvändiga Office 2007 MIME-typer till en IIS 6 Server.
"För att använda det här skriptet, dubbelklicka eller köra den från en kommandorad.
"Kör det här skriptet flera gånger resulterar i flera poster i
"IIS MimeMap så du bör inte köra det mer än en gång.
"Modifierad från http://msdn.microsoft.com/en-us/library/ms752346.aspx
 
Ingen MimeMapObj, MimeMapArray, MimeTypesToAddArray, WshShell, oExec
Const ADS_PROPERTY_UPDATE = 2 
 
"Ställ in MIME-typer som ska läggas
MimeTypesToAddArray = Array(".docm", "application/vnd.ms-word.document.macroEnabled.12", _
".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", _
".dotm", "application/vnd.ms-word.template.macroEnabled.12", _
".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template", _
".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12", _
".potx", "application/vnd.openxmlformats-officedocument.presentationml.template", _
".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12", _
".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", _
".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow", _
".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12", _
".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation", _
".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12", _
".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide", _
".xlam", "application/vnd.ms-excel.addin.macroEnabled.12", _
".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12", _
".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12", _
".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", _
".xltm", "application/vnd.ms-excel.template.macroEnabled.12", _
".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template") 
 
' Get the mimemap object
Set MimeMapObj = GetObject("IIS://LocalHost/MimeMap")
 
' Call AddMimeType for every pair of extension/MIME type
For counter = 0 till UBound(MimeTypesToAddArray) Steg 2
    AddMimeType MimeTypesToAddArray(counter), MimeTypesToAddArray(counter+1)
Next
 
' Create a Shell object
Set WshShell = CreateObject("WScript.Shell")
 
' Stop and Start the IIS Service
Set oExec = WshShell.Exec("net stop w3svc")
Do While oExec.Status = 0
    WScript.Sleep 100
Loop
 
Set oExec = WshShell.Exec("net start w3svc")
Do While oExec.Status = 0
    WScript.Sleep 100
Loop
 
Set oExec = Nothing
 
' Report status to user
WScript.Echo "Microsoft Office 2007 Document MIME types have been registered."
 
' AddMimeType Sub
Sub AddMimeType (Ext, MType)
 
    ' Get the mappings from the MimeMap property.
    MimeMapArray = MimeMapObj.GetEx("MimeMap") 
 
    ' Add a new mapping.
    Jag = UBound(MimeMapArray) + 1
    Redim Preserve MimeMapArray(Jag)
    Set MimeMapArray(Jag) = CreateObject("MimeMap")
    MimeMapArray(Jag).Extension = Ext
    MimeMapArray(Jag).MimeType = MType
    MimeMapObj.PutEx ADS_PROPERTY_UPDATE, "MimeMap", MimeMapArray
    MimeMapObj.SetInfo
 
End Sub

Apache MIME type addition (för Server Administrator)

Apache stores its MIME types in a file normally located at $installpath/conf/mime.types. See the mod_mime documentation for more on how it works. Arch Linux installs its MIME types at /etc/httpd/conf/mime.types och Parallels Plesk installs it in /usr/local/psa/admin/conf/mime.types. Your distribution might have it in another place, so find your mime.types file by running locate mime.types.

Add the following lines to your mime.types file:

application/vnd.ms-word.document.macroEnabled.12                          docm
application/vnd.openxmlformats-officedocument.wordprocessingml.document   docx
application/vnd.ms-word.template.macroEnabled.12                          dotm
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-powerpoint.slide.macroEnabled.12                       sldm
application/vnd.openxmlformats-officedocument.presentationml.slide        sldx
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

Apache MIME type addition (For the domain owner with at least FTP accessusing .htaccess file)

Add the following text to your domain’s .htaccess fil, most commonly in an httpdocs/ directory

AddType application/vnd.ms-word.document.macroEnabled.12 docm
AddType application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
AddType application/vnd.ms-word.template.macroEnabled.12 dotm
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-powerpoint.slide.macroEnabled.12 sldm
AddType application/vnd.openxmlformats-officedocument.presentationml.slide sldx
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
Dela med sig
Du kan följa svar på detta inlägg via RSS 2.0 foder. Du kan Lämna ett svar, eller track från din egen hemsida.

9 Responses

  1. 1
    Steve 

    I think there is a typo in the vb script for IIS; the .xlt extension should be .xltm. Också, two more extensions should be added:
    “.sldx”, “application/vnd.openxmlformats-officedocument.presentationml.slide”, _
    “.sldm”, “application/vnd.ms-powerpoint.slide.macroEnabled.12”, _

  2. 2
    Tricky 

    Very interesting, Steve.

    The .xlt isn’t a typo, apparently .xltm is supposed to be the macro-enabled version of .xlt. I’ll do some research and adjust appropriately.

    Thanks!

  3. 3
    Tricky 

    Ah, you’re actually correct, Steve. .xltm/x is new but .xlt is theoldOffice Excel spreadsheet template.

  4. Hi ! It worked for me. Even without changing the direct metabase edit option.

    Cheers!
    Maciej

  5. 5
    Mário Araújo 

    Thanks! 🙂

  6. 6
    R Sleegers 

    Very nicesaved me the trouble of typing them in. “Note that you must restart the World Wide Web Publishing Service or wait for the worker process to recycle for the changes to take effect.” ( http://support.microsoft.com/kb/326965 )

  7. 7
    Tricky 

    I’m not sure a recycle is necessary if you’veensure[d] that your server is also set to allow direct metabase editing”, per the article.

  1. […] Source: http://dogma.swiftspirit.co.za/archives/183 […]

  2. […] The original article where the script was found is here. […]

Lämna ett svar » Logga in