【发布时间】:2013-01-15 21:45:35
【问题描述】:
我正在开发一个允许用户上传不同文件格式的网站。我们需要限制用户上传受密码保护的文件。
有没有办法在上传文件之前确定 Microsoft Office 文件(Word、Powerpoint 和 Excel)是否受密码保护? 根据http://social.msdn.microsoft.com/Forums/en/oxmlsdk/thread/34701a34-f1d4-4802-9ce4-133f15039c69,我已经实现了以下内容,但是在尝试打开受密码保护的文件时,它会抛出一个错误,提示“文件包含损坏的数据”。
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(mem, false))
{
DocumentProtection dp =
wordDoc.MainDocumentPart.DocumentSettingsPart.Settings.GetFirstChild<DocumentProtection>();
if (dp != null && dp.Enforcement == DocumentFormat.OpenXml.OnOffValue.FromBoolean(true))
{
return true;
}
}
还有其他方法可以确定吗?
【问题讨论】:
-
如果您处于代码的这一点,则该文件已经上传。你只是还没有对它做任何事情。
-
正在上传可能已损坏或格式错误的文档。
-
我认为文档没有损坏,可以在MS Office中成功打开。
-
请务必告诉我们您正在使用哪种类型的文档以及哪些版本:例如,任何 Excel 2003 文档?