我需要知道我保存在带有Grocery CRUD的文件夹中的文件大小。这就是我在控制器中所做的事情:
$this->load->config('grocery_crud');
$this->config->set_item('grocery_crud_file_upload_allow_file_types', 'pdf|rar|');
$this->crud->set_field_upload('fichero', 'assets/files');
$this->crud->callback_after_insert(array($this, 'file_size'));
和另一种方法
function file_size($post_array, $primary_key) {
if ($primary_key == $post_array['id']) {
$nombre_db = $post_array['fichero'];
$nombre_fichero = 'assets/files'. $nombre_db;
$filesize = filesize($nombre_fichero);
}
echo $filesize;
我的文件在diferents文件夹中,我不知道这是否有问题,我做了一个echo $filesize
来查看值,但不显示anithing,不是值,不是错误。请提前帮助,谢谢。
[其他信息]
回调不输入方法,我把 function file_size
一个echo
放进去查看是否显示内容或进入内部,但没有,我不知道是什么我的回调功能错了。
答案 0 :(得分:0)
您应该尝试打开错误报告。
您(可能)在文件路径中缺少斜杠:
$nombre_fichero = 'assets/files/'. $nombre_db;
但是没有错误,我只是在猜测。
答案 1 :(得分:0)
我解决了我的问题,我试图以错误的方式解决它,而不是进行回调,我必须做的是在向我显示所有结果的函数中然后将它们发送到视图,调用函数计算文件大小。
我留下我的回答和我得到它的链接。
$url_file_update = 'assets/';
$file_name = $url_file_update . $query->row($i)->file; // file name
$weight_file = filesize($file_name); // we get the weight in bytes
$file_size = $this->file_size($weight_file); // show the modified weight
功能 file_size
function file_size($peso) {
$decimales = 2;
$clase = array(" Bytes", " KB", " MB", " GB", " TB");
return round($peso / pow(1024, ($i = floor(log($peso, 1024)))), $decimales) . $clase[$i];
}