如何知道杂货店的文件大小?

时间:2017-05-24 19:21:21

标签: php codeigniter file callback grocery-crud

我需要知道我保存在带有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放进去查看是否显示内容或进入内部,但没有,我不知道是什么我的回调功能错了。

2 个答案:

答案 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];
}

link to the documentation that I found