我怎么知道杂货店垃圾中的文件大小?

How can I know file size in 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 来查看值但没有显示任何内容,不是值,不是错误。请帮助,提前致谢。

[附加信息]

回调不进入方法,我在里面放了function file_size一个echo看是不是显示什么或者进入里面,但是没有,我不知道我的回调函数有什么问题。

您应该尝试打开错误报告。

您的文件路径中(可能)缺少斜杠:

$nombre_fichero = 'assets/files/'. $nombre_db;

但我只是猜测,没有错误。

我解决了我的问题,我试图以错误的方式解决它,而不是进行回调,我必须做的是在显示所有结果的函数中,然后将它们发送到视图,调用计算文件大小的函数。

我留下我的答案和 link 从哪里得到它。

$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