Windows et Linux ont des fins de ligne différentes, \r\n et \n . Ainsi, lorsque le fichier est lu, le contenu des fichiers est différent.
Essayez de télécharger un fichier texte sans nouvelle ligne ou un fichier binaire. Vérifiez également la différence d'octets lus. Il doit être égal au nombre de nouvelles lignes dans le fichier suivant.
Ok, j'ai trouvé la réponse à ma question, je ne sais toujours pas pourquoi deux hachages différents ont été générés pour le même code sous Windows et 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
Ce que j'ai essayé ici, c'est que j'ai remplacé mon code ci-dessus par le code suivant
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newname);
"Stored in: " . "upload/" . $_FILES["file"]["name"];
$image = "upload/" . $newname;
$sign = md5_file($image);// Changed here
À partir de là, je pense que les valeurs de hachage peuvent être les mêmes lorsqu'elles sont générées par md5()
mais si cette fonction accepte le fichier en entrée, les valeurs de hachage sont calculées différemment, je ne sais pas s'il s'agit d'un problème secondaire PHP ou d'un problème au niveau du système d'exploitation, mais si je continue à utiliser md5_file()
pour générer le hachage du fichier, je n'obtiens pas de hachage différent.