【发布时间】:2012-11-05 02:34:01
【问题描述】:
我需要确定我服务器上上传的文件是不是pdf?
【问题讨论】:
-
What have you tried?你被困在哪里了?什么不适合你?
我需要确定我服务器上上传的文件是不是pdf?
【问题讨论】:
首先,检查文件的扩展名:)
你应该检查this answer。
- 您可以简单地尝试使用此类库之一加载 PDF 文件。 iTextSharp 将是一个不错的选择。
- 根据 PDF 参考,PDF 文件的标题通常采用 %PDF-1.X 格式(其中 X 是一个数字,目前从 0 到 7)。
例如标头可能出现在文件的前 1024 个字节中的某处,或者采用 %!PS-Adobe-N.n PDF-M.m 的形式
【讨论】:
检查文件扩展名是否为.pdf
您可以在上传期间使用以下代码执行此操作:
<asp:CustomValidator ID="pdfUpload" runat="server" ClientValidationFunction="ValidateFilePDF"
ErrorMessage="Please select valid pdf document"></asp:CustomValidator>
function ValidateFilePDF(Source, args) {
var fuData = document.getElementById('<%= yourFileUploadInputBoxID.ClientID %>');
var FileUploadPath = fuData.value;
if (FileUploadPath == '') {
args.IsValid = false;
}
else {
var Extension = FileUploadPath.substring(FileUploadPath.lastIndexOf('.') + 1).toLowerCase();
if (Extension == "pdf" {
args.IsValid = true;
}
else {
args.IsValid = false;
}
}
}
【讨论】:
可以在服务器端查看文件类型:
if (string.Equals(fileExt, ".pdf", StringComparison.OrdinalIgnoreCase)) {...}
这会抵消“pdf2”等输入。
【讨论】: