Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在vb.net中检查上载的文件_Asp.net_Xml_Vb.net - Fatal编程技术网

Asp.net 在vb.net中检查上载的文件

Asp.net 在vb.net中检查上载的文件,asp.net,xml,vb.net,Asp.net,Xml,Vb.net,我需要一个片段来检查文件的有效性(我允许用户上传xml文件)。所以我需要检查上传的文件是否是XML。 我能想到的最好办法就是检查扩展名是否为“.xml”。如果它被替换了怎么办?在Urlmon.dll中,有一个名为findmemefromdata的函数 从文件中 MIME类型检测,或“数据” “嗅探”指的是 确定适当的MIME类型 从二进制数据。最终结果 取决于以下因素的组合: 服务器提供的MIME类型头, 文件扩展名和/或数据 它本身通常,只有前256个 字节的数据是重要的 因此,从文件中读取第

我需要一个片段来检查文件的有效性(我允许用户上传xml文件)。所以我需要检查上传的文件是否是XML。
我能想到的最好办法就是检查扩展名是否为“.xml”。如果它被替换了怎么办?

在Urlmon.dll中,有一个名为findmemefromdata的函数

从文件中

MIME类型检测,或“数据” “嗅探”指的是 确定适当的MIME类型 从二进制数据。最终结果 取决于以下因素的组合: 服务器提供的MIME类型头, 文件扩展名和/或数据 它本身通常,只有前256个 字节的数据是重要的


因此,从文件中读取第一个(最多)256字节,并将其传递给FindMimeFromData。

在Urlmon.dll中,有一个名为FindMimeFromData的函数

从文件中

MIME类型检测,或“数据” “嗅探”指的是 确定适当的MIME类型 从二进制数据。最终结果 取决于以下因素的组合: 服务器提供的MIME类型头, 文件扩展名和/或数据 它本身通常,只有前256个 字节的数据是重要的


因此,从文件中读取第一个(最多)256字节并将其传递给FindMimeFromData。

您可以尝试这样加载它并捕获异常:

XDocument xdoc = XDocument.Load("data.xml"));

您可以尝试这样加载它并捕获异常:

XDocument xdoc = XDocument.Load("data.xml"));

如果必须验证xml(假设要验证整个内容),则可以使用
XmlDocument
类捕获异常(如果不是xml)。

如果必须验证xml(假设要验证整个内容)您可以使用
XmlDocument
类并捕获一个异常(如果它不是XML)。

假设,如果他们正在上载XML,那么您将在以后使用它进行某些操作。在这种情况下,您应该根据模式(XSD等)验证XML,这样您就知道不会遇到意外的值/布局等。

假设,如果他们正在上载XML,那么您将在以后使用它。在这种情况下,您应该根据模式(XSD等)验证XML,这样您就知道不会遇到意外的值/布局等。

因为可能是黑客或恶意用户在搜索漏洞,您可能不想只回答文件扩展名:)是的,唯一可以检查文件扩展名的情况是,应用程序只是将文件作为服务存储给用户。。而不是自己消费。然后检查文件扩展名将是一种简单的UI方式,可以说“嘿,那不是XML文件。”。。但这里的应用程序似乎不是这样的。感谢您指出这一点。因为可能是黑客或恶意用户在搜索漏洞,您可能不想只回答文件扩展名:)是的,唯一可以检查文件扩展名的情况是,应用程序只是将文件作为服务存储给用户。。而不是自己消费。然后检查文件扩展名将是一种简单的UI方式,可以说“嘿,那不是XML文件。”。。但这里的应用程序似乎不是这样的。谢谢你指出这一点。