我正在使用以下代码创建哈希值,现在发生的情况是,当我在 Windows 本地 Xampp 服务器上测试哈希值时,我得到的哈希值与在 Linux 上运行的相同代码不同。
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newname);
"Stored in: " . "upload/" . $_FILES["file"]["name"];
$image = "upload/" . $newname;
$sign = md5(file_get_contents($image));
现在我不知道为什么会这样。对于我刚刚在上面粘贴的相同代码。
编辑:再次打开问题。我发现的解决方案仅适用于 Linux,这意味着 linux 和 Windows 现在给我相同的哈希值,但是当从 Mac(IOS) 上传图像时,它仍然生成不同的哈希值。
最佳答案
Windows 和 Linux 有不同的行尾,\r\n 和 \n。所以在读取文件的时候,文件的内容是不一样的。
尝试上传没有新行的文本文件或二进制文件。还要检查读取的字节数的差异。它应该等于下一个文件中的新行数。
关于php - 在 windows、linux 和 Mac 上为同一图像创建不同的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23829553/