我想从自定义字段显示文档(pdf、word、excel等)的文件大小。我已经搜索过了,什么也没找到。我从其他网站获得了这段代码,但它是用PHP编写的。所以我手动将其添加到我的主题中。
if($kpmFile !== get_post_custom_values("kpm_UploadFile")) {
$head = array_change_key_case(get_headers($kpmFile, TRUE));
echo $filesize = $head[\'content-length\'];
}
我从上述代码中得到此警告:
Warning: get_headers() [function.get-headers]:
但如果我这样做:
if($kpmFile !== get_post_custom_values("kpm_UploadFile")) {
$head = array_change_key_case(get_headers("http://example.net/publications/Wellspring-of-Hope.pdf", TRUE));
echo $filesize = $head[\'content-length\'];
}
代码将显示44147474中的文件大小,该文件实际为42.1MB
我需要有关如何从自定义字段值以kb、mb或gb为单位显示文档的正确文件大小的帮助。
提前谢谢。
最合适的回答,由SO网友:Ravinder Kumar 整理而成
用于显示文件大小的函数,即。
将此代码粘贴到函数中。php
/*
* @param string $fileSize Filepath
* @param int $digits Digits to display
* @return string|bool Size (KB, MB, GB, TB) or boolean
*/
function getFilesize($fileSize, $digits=2) {
$sizes = array("TB","GB","MB","KB","B");
$total = count($sizes);
while ($total-- && $fileSize > 1024) {
$fileSize /= 1024;
}
return round($fileSize, $digits)." ".$sizes[$total];
}
将此代码粘贴到单个中。php
if($kpmFile !== get_post_custom_values("kpm_UploadFile")) {
$head = array_change_key_case(get_headers("http://example.net/publications/Wellspring-of-Hope.pdf", TRUE));
echo $filesize = getFilesize($head[\'content-length\']);
}