星期六, 2月21日, 2009 | 笔者:

较新的文档类型 办公室 2007 给一些web主机的问题时,他们的客户要提供下载的文件. 最常见, 该文件正在提供由web服务器 “text / html类型” 然后将其呈现为一吨垃圾的网络用户的屏幕上.

要解决这一点的最好办法是将所有的 MIME 类型服务器的主要配置. IIS7 对于Windows已经有了这些MIME类型正确设置默认. IIS6和IIS5的要求要添加的MIME类型, 作为威力 阿帕奇 在旧设备. 对于Apache, 还有一种解决方法为个人站点所有者通过Apache的添加mime类型 .htaccess的 文件.

IIS 6 MIME类型除 (对于服务器管理员)

在此之前可以做, 确保您的服务器也设置为允许直接编辑配置数据库:

  1. 负载 IIS管理器: 开始 - > Ř联合国, “INETMGR” -> [行]
  2. 右键单击 “服务器” 并点击 “PŘoperties”
  3. 内 “Internet信息服务” 标签 (通常是唯一的选项卡), 确保该 “它Ñ能够直接编辑配置数据库” 复选框被选中.
  4. 点击 [行]

一定要 备份IIS配置 (这里 对于IIS5) 事先. 我不会为一个管理员打破他的服务器不承担任何责任. 我有理由相信这 也可以用在IIS5但是我有同样多的理由相信,它可能只是给很多错误. 如果IIS5 / 视窗 2000 管理员愿意测试这个对我来说 备份后 你的配置请让我知道结果.

下面的文字复制到一个名为msoff07-addmime.vbs并执行它 一旦 在命令行键入 CSCRIPT msoff07-addmime.vbs 并按下Enter键. 如果你运行它不止一次, 的MIME类型将每次添加,你将有多个相同的条目:

“这个脚本添加必要的办公室 2007 MIME类型到IIS 6 服务器.
“要使用这个脚本, 只需双击或在命令行中执行它.
“在运行此脚本多次导致多个条目
'IIS的MimeMap所以你不应该运行它不止一次.
从http'的修改://msdn.microsoft.com/en-us/library/ms752346.aspx
 
 MimeMapObj, MimeMapArray, MimeTypesToAddArray, WshShell中, oExec
常量 ADS_PROPERTY_UPDATE = 2 
 
'设置要添加的MIME类型
MimeTypesToAddArray = 排列(“DOCM", “application/vnd.ms-word.document.macroEnabled.12", _
“。的docx", “应用程序/ vnd.openxmlformats-officedocument.wordpro​​cessingml.document", _
“DOTM", “application/vnd.ms-word.template.macroEnabled.12", _
“DOTX", “应用程序/ vnd.openxmlformats-officedocument.wordpro​​cessingml.template", _
“POTM", “application/vnd.ms-powerpoint.template.macroEnabled.12", _
“potx", “应用程序/ vnd.openxmlformats-officedocument.presentationml.template", _
“PPAM", “application/vnd.ms-powerpoint.addin.macroEnabled.12", _
“PPSM", “application/vnd.ms-powerpoint.slideshow.macroEnabled.12", _
“PPSX", “应用程序/ vnd.openxmlformats-officedocument.presentationml.slideshow", _
“PPTM", “application/vnd.ms-powerpoint.presentation.macroEnabled.12", _
“PPTX", “应用程序/ vnd.openxmlformats-officedocument.presentationml.presentation", _
“sldm", “application/vnd.ms-powerpoint.slide.macroEnabled.12", _
“sldx", “应用程序/ 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", “应用程序/ vnd.openxmlformats-officedocument.spreadsheetml.sheet", _
“xltm", “application/vnd.ms-excel.template.macroEnabled.12", _
“xltx", “应用程序/ vnd.openxmlformats-officedocument.spreadsheetml.template") 
 
'获取的MimeMap对象
 MimeMapObj = GETOBJECT(“事项://本地主机/的MimeMap")
 
“呼叫AddMimeType每对扩展/ MIME类型
 计数器 = 0  UBOUND(MimeTypesToAddArray) 步骤 2
    AddMimeType MimeTypesToAddArray(计数器), MimeTypesToAddArray(计数器+1)
下一个
 
'创建一个Shell对象
 WshShell中 = 的CreateObject(“WScript.Shell的")
 
“停止并启动IIS服务
 oExec = WshShell中.EXEC(“净停止W3SVC")
  oExec.状态 = 0
    WScript的.睡觉 100

 
 oExec = WshShell中.EXEC(“NET START W3SVC")
  oExec.状态 = 0
    WScript的.睡觉 100

 
 oExec = 
 
报告状态的用户
WScript的.回声 “微软Office 2007 文档的MIME类型已经被注册。"
 
“AddMimeType子
 AddMimeType (分机, M型)
 
    “从的MimeMap属性获取映射.
    MimeMapArray = MimeMapObj.GETEX(“的MimeMap") 
 
    '添加新的映射.= UBOUND(MimeMapArray) + 1
    REDIM 保留MimeMapArray()
     MimeMapArray() = 的CreateObject(“的MimeMap")
    MimeMapArray().延期 = 分机
    MimeMapArray().Mime类型 = M型
    MimeMapObj.PutEx ADS_PROPERTY_UPDATE, “的MimeMap", MimeMapArray
    MimeMapObj.呼叫SetInfo
 
结束 

Apache的MIME类型除 (对于服务器管理员)

Apache的存储它的MIME类型在通常位于一个文件 $INSTALLPATH / conf目录/ mime.types中. 见mod_mime一样 文档 更多关于它是如何工作. Arch Linux的 安装在它的MIME类型 /等/的httpd / conf /中的mime.types的Parallels Plesk 在安装它 /USR /本地/ PSA /管理/ conf /中的mime.types. 你的发行版可能会在另一个地方, 所以找到你 mime.types中 通过运行文件 找到mime.types中.

将下列语句添加到您的mime.types文件:

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类型除 (对于网站所有者,至少 FTP 访问 – 利用。htaccess文件)

将以下文本添加到您的域的 .htaccess的 文件, 最常用的一种 上传至httpdocs / 目录

将AddType application/vnd.ms-word.document.macroEnabled.12 DOCM
将AddType 应用/ vnd.openxmlformats-officedocument.wordpro​​cessingml.document的docx
将AddType application/vnd.ms-word.template.macroEnabled.12 DOTM
将AddType 应用/ vnd.openxmlformats-officedocument.wordpro​​cessingml.template DOTX
将AddType application/vnd.ms-powerpoint.template.macroEnabled.12 POTM
将AddType 应用/ 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 应用/ vnd.openxmlformats-officedocument.presentationml.slideshow PPSX
将AddType application/vnd.ms-powerpoint.presentation.macroEnabled.12 PPTM
将AddType 应用/ vnd.openxmlformats-officedocument.presentationml.presentation PPTX
将AddType application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm
将AddType 应用/ 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 应用/ vnd.openxmlformats-officedocument.spreadsheetml.sheet XLSX
将AddType application/vnd.ms-excel.template.macroEnabled.12 xltm
将AddType 应用/ vnd.openxmlformats-officedocument.spreadsheetml.template xltx
分享
您可以通过,这是一条任何反应 RSS 2.0 饲料. 您可以 留下回应, 或 引用通告 从您自己的网站.

9 回复

  1. 1
    Steve 

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

  2. 2
    狡猾 

    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.

    谢谢!

  3. 3
    狡猾 

    Ah, you’re actually correct, Steve. .xltm/x is new but .xlt is the “老” Office 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 

    谢谢! 🙂

  6. 6
    ř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
    狡猾 

    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. […]

发表评论 » 登录