获取文件的Adobe Air MD5以匹配PHP MD5

时间:2011-10-17 22:10:17

标签: php javascript air md5 filestream

我需要两个函数,一个在PHP中,另一个在Adobe AIR javascript中,可以计算文件的MD5哈希并为同一个文件返回相同的结果。

我正在使用PHPJS的MD5函数来获取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 个答案:

答案 0 :(得分:1)

PHP版本绝对是错误的。 $file.size正在生成一个荒谬的结果,可能类似于"Resource id #7size"

正确(并且更简单)的实现可能是:

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

答案 1 :(得分:0)

您也可以使用md5_file功能。