Получение Adobe Air MD5 файла, соответствующего PHP MD5 - PullRequest
0 голосов
/ 18 октября 2011

Мне нужны две функции, одна в PHP, а другая в javascript Adobe AIR, которая может вычислять хэш 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);
  }
}

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

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

Ответы [ 2 ]

1 голос
/ 18 октября 2011

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

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

function GetFileMD5($path) {
    return md5(file_get_contents($path));
}
0 голосов
/ 01 октября 2013

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

...