【问题标题】:Getting extension of the file in FileUpload Control在 FileUpload 控件中获取文件的扩展名
【发布时间】:2011-01-27 10:13:54
【问题描述】:

目前我得到文件的文件扩展名,例如:

string fileExt = System.IO.Path.GetExtension(filUpload.FileName);

但如果用户更改文件的文件扩展名(例如用户可以将“test.txt”重命名为“test.jpg”),我无法获得真正的扩展名。有什么解决办法?

【问题讨论】:

    标签: asp.net file-upload


    【解决方案1】:

    您似乎在问是否可以从其内容中识别文件类型。

    大多数解决方案确实会尝试文件扩展名,但可能的文件类型太多,无法可靠识别。

    大多数方法使用文件的前几个字节来确定它们是什么。

    Here 是一个列表,here 是另一个。

    如果您只担心文本与二进制,请参阅this SO 问题和答案。

    请参阅this SO 答案以检查文件是否为 JPG - 此方法可以扩展为使用其他文件头,如此答案中的前两个链接。

    【讨论】:

      【解决方案2】:

      没有办法获得“真正的”文件扩展名 - 您从文件名中获得的文件扩展名是真实的。如果您关心文件内容,您可以使用 .ContentType 属性检索内容类型并验证它是否是您期望的内容类型 - 例如。 图像/jpg.

      【讨论】:

        【解决方案3】:

        无论用户将文件扩展名重命名为什么,这就是真正的文件扩展名。

        您永远不应依赖文件扩展名来告诉您文件中的内容,因为它可以重命名。

        见“how can we check file types before uploading them in asp.net?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-11
          • 1970-01-01
          • 2011-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多