Windows e Linux hanno terminazioni di riga diverse, \r\n e \n . Quindi, quando il file viene letto, il contenuto dei file è diverso.
Prova a caricare un file di testo senza una nuova riga o un file binario. Controlla anche la differenza nei byte letti. Dovrebbe essere uguale al numero di nuove righe nel file successivo.
Ok, ho trovato la risposta alla mia domanda, ancora non so perché sono stati generati due diversi hash per lo stesso codice in Windows e 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
Quello che ho provato qui è stato sostituire il mio codice precedente con il seguente codice
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newname);
"Stored in: " . "upload/" . $_FILES["file"]["name"];
$image = "upload/" . $newname;
$sign = md5_file($image);// Changed here
Da questo penso che i valori hash possano essere gli stessi quando generati da md5()
ma se questa funzione accetta il file come input, i valori hash vengono calcolati in modo diverso, non so se si tratta di un problema lato PHP o di un problema a livello di sistema operativo, ma se continuo a utilizzare md5_file()
per la generazione dell'hash del file non ottengo un hash diverso.