gpt4 book ai didi

magic-numbers - 纯文本文件的魔数(Magic Number)

转载 作者:行者123 更新时间:2023-12-04 22:46:29 27 4
gpt4 key购买 nike

谷歌搜索后,我发现可以使用魔数(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 文件的魔数(Magic Number)是多少

最佳答案

此处讨论的上下文中的魔数(Magic Number)通常用于指示二进制文件中的数据类型。解析文件的程序可以查看魔数(Magic Number),然后知道如何处理文件的其余部分。例如,所有 Java .class 文件(不是源文件)的魔数(Magic Number)是 0xCAFEBABE。在运行时,当类加载器加载一个类时,它会查看前 4 个字节,如果它们不是 0xCAFEBABE,类加载器不会将该文件视为有效的 Java 类文件。如果您正在为正在编写或希望其他人编写的某些软件定义自己的文件类型,则可以定义自己的一个或多个魔数(Magic Number)。当软件创建您类型的文件时,该软件有责任在文件中写入适当的魔数(Magic Number)。读取文件的软件可以使用该魔数(Magic Number)来帮助决定要做什么。

魔数(Magic Number)对纯文本文件没有意义。如果您将魔数(Magic Number)写入文件,它将不再是纯文本文件。这将是一个遵循您的格式的文件,它可能是一个魔数(Magic Number),后跟一堆纯文本。如果这就是你想要的,那就去做吧。我不知道您的应用程序在做什么,但可以想象,只要您知道文件将始终由您自己的软件(或符合您的魔数(Magic Number)期望的其他软件)读取和写入,这可能是有意义的。

我希望这有帮助。

关于magic-numbers - 纯文本文件的魔数(Magic Number),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672780/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com