#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
функцию.