在google上搜索后,我发现Magic number可以用来识别文件的内容类型。
在我的程序中,我想验证服务器端的文件内容类型。
客户端代码:
<form action="/Home/Index" method="post" enctype="multipart/form-data">
<input type="file" id="inputFile" value="" onchange="readFileContent(this)" />
<input type="submit" value="Submit" />
</form>
function readFileContent(input) {
if (input.files && input.files[0]) {
reader = new FileReader();
reader.onload = function (e) {
var xhr = new XMLHttpRequest();
xhr.open('POST', '/Home/CheckFileType', true);
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.setRequestHeader('X-File-Name', input.files[0].name);
xhr.setRequestHeader('X-File-Type', input.files[0].type);
xhr.setRequestHeader('X-File-Size', input.files[0].size);
xhr.send(input.files[0]);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText);
}
}
};
reader.readAsText(input.files[0]);
}
}
这是我的服务器端代码:
[HttpPost]
public JsonResult CheckFileType()
{
string fileType = Request.Headers["X-File-Type"];
byte[] buffer = new byte[Request.InputStream.Length];
Request.InputStream.Read(buffer, 0, Convert.ToInt32(Request.InputStream.Length));
object result = new { status = "finished" };
return Json(result, JsonRequestBehavior.AllowGet);
}
纯文本或。txt文件的幻数是多少
这里讨论的上下文中的幻数通常用于指示二进制文件中包含的数据类型。解析文件的程序可以查看幻数,然后知道如何处理文件的其余部分。例如,所有Java .class文件(不是源文件)的幻数是0xCAFEBABE。在运行时,当类加载器加载一个类时,它将查看前4个字节,如果它们不是0xCAFEBABE,则类加载器将不将该文件视为有效的Java类文件。如果您要为自己正在编写或期望别人编写的软件定义自己的文件类型,那么您可以定义自己的幻数或幻数。当软件创建您的类型的文件时,在文件中写入适当的魔术数字将是软件的责任。读取文件的软件可以使用这个神奇的数字来帮助决定做什么。
魔术数字对纯文本文件没有意义。如果将幻数写入文件,则它将不再是纯文本文件。它将是一个遵循你的格式的文件,它可能是一个神奇的数字,后面跟着一堆纯文本。如果这是你想要的,那就去做吧。我不知道你的应用程序在做什么,但可以想象,只要你知道文件总是由你自己的软件(或其他符合你的魔法数字期望的软件)读取和写入,这可能是有意义的。