Windows PHP Замена SHA1_FILE & gt; = исправление ошибки 2 ГБ

Так что для тех, кто не знает PHP, как 64-битные, так и 32-битные сборки для Windows имеют ограничение дизайна, что означает такие функции, как «размер файла», «md5_file», «sha1_file» и т. Д. Не может читать файлы размером более 2 ГБ, и скрипт php должен ошибка или вернуть неверный / неправильный размер файла.

$fname = $_FILES['Filedata']['tmp_name'];
$filesource = sha1_file($fname);

Решение с помощью командной строки Windows выглядит следующим образом.

CertUtil -hashfile "C:\Users\C0n\Desktop\2GB-file.MP4" SHA1

Как я могу использовать это в своем PHP-коде, чтобы получить сумму sha1 большого файла.

1

Решение

<?php

$result = shell_exec ('CertUtil -hashfile "C:\Users\C0n\Desktop\2GB-file.MP4" SHA1');

var_dump ($result);
1

Другие решения

Мой рабочий код выглядит следующим образом.

//Check OS is Windows
if(substr(PHP_OS, 0, 3) == "WIN") {
//input file
$input = 'CertUtil -hashfile "C:\Users\C0n\Desktop\2GB-file.MP4" SHA1';
//Eexecute input and put the response into a array
exec($input, $response);
//Remove spaces between the hash output.
$str = str_replace(' ', '', $response[1]);
//Display the hash of the file
echo $str;
}
0

По вопросам рекламы [email protected]