Windows PHP 替换 SHA1_FILE >= 2GB 错误修复
Windows PHP Replacing SHA1_FILE >= 2GB error fix
所以对于那些不知道 PHP windows 的 64 位和 32 位构建都有设计限制,这意味着像 "filesize"、"md5_file"、"sha1_file" 等。无法读取超过 2GB 的文件,php 脚本将出错或 return 文件的 invalid/incorrect 大小。
$fname = $_FILES['Filedata']['tmp_name'];
$filesource = sha1_file($fname);
windows命令提示符的解决方案如下。
CertUtil -hashfile "C:\Users\C0n\DesktopGB-file.MP4" SHA1
我如何在我的 PHP 代码中使用它来接收大文件的 sha1 总和。
<?php
$result = shell_exec ('CertUtil -hashfile "C:\Users\C0n\DesktopGB-file.MP4" SHA1');
var_dump ($result);
我的工作代码如下。
//Check OS is Windows
if(substr(PHP_OS, 0, 3) == "WIN") {
//input file
$input = 'CertUtil -hashfile "C:\Users\C0n\DesktopGB-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;
}
所以对于那些不知道 PHP windows 的 64 位和 32 位构建都有设计限制,这意味着像 "filesize"、"md5_file"、"sha1_file" 等。无法读取超过 2GB 的文件,php 脚本将出错或 return 文件的 invalid/incorrect 大小。
$fname = $_FILES['Filedata']['tmp_name'];
$filesource = sha1_file($fname);
windows命令提示符的解决方案如下。
CertUtil -hashfile "C:\Users\C0n\DesktopGB-file.MP4" SHA1
我如何在我的 PHP 代码中使用它来接收大文件的 sha1 总和。
<?php
$result = shell_exec ('CertUtil -hashfile "C:\Users\C0n\DesktopGB-file.MP4" SHA1');
var_dump ($result);
我的工作代码如下。
//Check OS is Windows
if(substr(PHP_OS, 0, 3) == "WIN") {
//input file
$input = 'CertUtil -hashfile "C:\Users\C0n\DesktopGB-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;
}