В общем, я для своего сайта пишу загрузчик больших файлов (видео). Он реализован с использованием FileApi, и файл отправляется на сервер кусками по 2 мегабайта. Вместе с куском, я отправлял его хеш md5, реализацию которого нашел в интернете. Но хеши на сервере (php) не совпадают с отправленным, даже если файл 100% был отправлен без ошибок.
вот так он у меня принимается на сервере. отправляю через sendAsBinary(считанный блоб из файла);
$fin = fopen("php://input", "rb");
if ($fin)
{
$data='';
while (!feof($fin))
{
$data .= fread($fin, 2*1024*1024);
}
fclose($fin);
$seg_hash_normal=$_SERVER["HTTP_MD5"];
$seg_hash=md5($data);
if($seg_hash_normal!=$seg_hash)
{
header("HTTP/1.0 200 OK");
echo "bad";
fwrite($flog,"file upload bad ".$_SERVER["HTTP_PORTION_FROM"]." (".$seg_hash_normal." - ".$seg_hash."\n");
exit;
}
}
Подскажите, где может быть ошибка, и какую функцию использовать.