【问题标题】:How to determine if the uploaded file on my server is a pdf?如何确定我服务器上上传的文件是否为pdf?
【发布时间】:2012-11-05 02:34:01
【问题描述】:

我需要确定我服务器上上传的文件是不是pdf?

【问题讨论】:

标签: c# asp.net pdf


【解决方案1】:

首先,检查文件的扩展名:)
你应该检查this answer

  1. 您可以简单地尝试使用此类库之一加载 PDF 文件。 iTextSharp 将是一个不错的选择。
  2. 根据 PDF 参考,PDF 文件的标题通常采用 %PDF-1.X 格式(其中 X 是一个数字,目前从 0 到 7)。

例如标头可能出现在文件的前 1024 个字节中的某处,或者采用 %!PS-Adobe-N.n PDF-M.m 的形式

【讨论】:

    【解决方案2】:

    检查文件扩展名是否为.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;
           }
        }
     }
    

    【讨论】:

    • 用户可以更改文件的扩展名。
    【解决方案3】:

    可以在服务器端查看文件类型:

    if (string.Equals(fileExt, ".pdf", StringComparison.OrdinalIgnoreCase)) {...}
    

    这会抵消“pdf2”等输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      • 2019-05-16
      • 2013-09-16
      • 2015-12-02
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      相关资源
      最近更新 更多