2011-10-17 72 views
0

我需要兩個函數,一個使用PHP,另一個使用Adobe AIR javascript,它可以計算文件的MD5哈希併爲同一個文件返回相同的結果。獲取文件的Adobe Air MD5以匹配PHP 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)); 
} 
0

您還可以使用md5_file功能。