Windows und Linux haben unterschiedliche Zeilenenden, \r\n und \n . Wenn also die Datei gelesen wird, ist der Inhalt der Dateien unterschiedlich.
Versuchen Sie, eine Textdatei ohne neue Zeile oder eine Binärdatei hochzuladen. Überprüfen Sie auch den Unterschied in den gelesenen Bytes. Es sollte gleich der Anzahl der neuen Zeilen in der nächsten Datei sein.
Ok, ich habe eine Antwort auf meine Frage gefunden, ich weiß immer noch nicht, warum in Windows und Linux zwei verschiedene Hashes für denselben Code generiert wurden
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
Was ich hier versucht habe, war, dass ich meinen obigen Code durch den folgenden Code
ersetzt habe move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newname);
"Stored in: " . "upload/" . $_FILES["file"]["name"];
$image = "upload/" . $newname;
$sign = md5_file($image);// Changed here
Daher denke ich, dass Hash-Werte gleich sein können, wenn sie von md5()
generiert werden aber wenn diese Funktion eine Datei als Eingabe akzeptiert, werden Hash-Werte anders berechnet, ich weiß nicht, ob dies ein PHP-seitiges Problem oder wirklich ein Problem auf Betriebssystemebene ist, aber wenn ich mit der Verwendung von md5_file()
fortfahre Für das Generieren des Hashs der Datei erhalte ich keinen anderen Hash.