【发布时间】:2013-04-07 12:07:15
【问题描述】:
conserned 网站的主要工作是接受用户的文件并保存。直到 2 个月前,当我被告知强制执行仅接受 pdf 文件的约束时,一切都很好。
在此之前,用户有提交各种格式的习惯,从文本、rtf 到好的 pdf。
我通过检查文件扩展名应用了约束 --simple 对吗?然而,当管理员检查这些文件时,大约 60% 的文件已损坏。
我花了很多不眠之夜来确定损坏的原因,然后突然我想可能是他们提交了损坏的文件。
我根据之前的记录,确定了一些我们从中获取损坏文件的用户最喜欢的文件类型格式。
我把扩展改回了最喜欢的扩展和繁荣..文件打开了。
尽管我以粗体字告诉用户如何将文件转换为 pdf,但我了解到的一些(许多)只是更改扩展名并提交。 由于该网站不奖励用户。提交的文件管理人员对我抱怨。有什么方法可以在不依赖扩展名的情况下检查文件是否为 pdf??
我在 c# 3.5 asp.net 中使用文件上传
【问题讨论】:
-
查看 POST mimetype。
-
怎么样??我已将其设置为应用程序/二进制
-
每个 PDF 的开头都有一个特殊的字符序列,请检查一下。
-
检查文件是否按照PDF规范要求以%PDF-开头:PDF文件的第一行应该是由5个字符%组成的标题PDF– 后跟 1.N 形式的版本号,其中 N 是 0 到 7 之间的数字。(参见ISO-32000-1:2008 第 7.5.2 节。)
-
@mkl 你能给我一些代码吗..这样做