noo*_*php 9 php linux windows hash ios
我正在使用以下代码创建哈希值,现在发生的情况是,当我在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));
Run Code Online (Sandbox Code Playgroud)
现在我不知道为什么会这样.对于我上面粘贴的相同代码.
编辑:再次打开问题.我发现的解决方案仅适用于Linux,这意味着Linux和Windows现在给我相同的哈希值,但是当从Mac(IOS)上传图像时,它仍然生成不同的哈希.
好的,我找到了回答我的问题,我仍然不知道为什么在Windows和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));//This is code block that i was implmenting before solution
Run Code Online (Sandbox Code Playgroud)
我在这里尝试的是用以下代码替换上面的代码
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newname);
"Stored in: " . "upload/" . $_FILES["file"]["name"];
$image = "upload/" . $newname;
$sign = md5_file($image);// Changed here
Run Code Online (Sandbox Code Playgroud)
从这个我认为哈希值可能在生成时相同,md5()
但如果此函数接受文件作为输入,则哈希值的计算方式不同,我不知道这是一个PHP方面问题还是真正的操作系统级别问题,但如果我继续使用md5_file()
for生成文件的哈希我没有得到不同的哈希.
Windows和Linux具有不同的行结尾,\ r \n和\n.因此,当读取文件时,文件的内容是不同的.
尝试上传没有换行或二进制文件的文本文件.还要检查读取的字节差异.它应该等于下一个文件中新行的数量.
归档时间: |
|
查看次数: |
3302 次 |
最近记录: |