Получение файла Adobe Air MD5 в соответствии с PHP MD5

#php #javascript #air #md5 #filestream

#php #javascript #air #md5 #filestream

Вопрос:

Мне нужны две функции, одна в PHP, а другая в Adobe AIR javascript, которые могут вычислять хэш MD5 файла и возвращать идентичные результаты для одного и того же файла.

Я использую функцию MD5 из PHPJS для javascript:

 function GetFileMD5(path) {
  var file = new air.File(path);
  if(file.exists) {
    var fileStream = new air.FileStream();              
    fileStream.open(file, air.FileMode.READ);
    var content = fileStream.readUTFBytes(fileStream.bytesAvailable);
    fileStream.close();
    return md5(content);
  } 
}
  

и в PHP:

 function GetFileMD5($path) {
  if($file = fopen($path,'rb')) {
    $content = fread($file, $file.size);
    fclose($file);
    return md5($content);
  }
}
  

Я не уверен, какую функцию filestream использовать (вместо readUTFBytes для соответствия fread). Я пробовал различные комбинации.

Любая помощь?

Ответ №1:

Версия PHP определенно неверна. $file.size генерирует бессмысленный результат, вероятно, что-то вроде "Resource id #7size" .

Правильная (и гораздо более простая) реализация может быть:

 function GetFileMD5($path) {
    return md5(file_get_contents($path));
}
  

Ответ №2:

Вы также можете использовать md5_file функцию.