如何在codeigniter中获取上传文件的完整路径?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在codeigniter中获取上传文件的完整路径?相关的知识,希望对你有一定的参考价值。

我正在使用codeIgniter文件上传类示例https://www.codeigniter.com/user_guide/libraries/file_uploading.html来上传文件。在上传文件后的示例中,它将在上传成功视图页面中显示如下所示的详细信息。

 Array
(
[upload_data] => Array
    (
        [file_name] => VenkataKrishna10.pdf
        [file_type] => application/pdf
        [file_path] => C:/xampp/htdocs/upload/application/
        [full_path] => C:/xampp/htdocs/upload/application/VenkataKrishna10.pdf
        [raw_name] => VenkataKrishna10
        [orig_name] => VenkataKrishna.pdf
        [client_name] => VenkataKrishna.pdf
        [file_ext] => .pdf
        [file_size] => 83.27
        [is_image] => 
        [image_width] => 
        [image_height] => 
        [image_type] => 
        [image_size_str] => 
    )

 )

之后我尝试以数组格式查看整个上传的数据。我的问题是如何从上面的数组获取完整的文件路径。我知道有一个变量full_path但我无法得到它。请帮我。

答案

从您的控制器使用

echo $data['upload_data']['full_path'];

从您的角度来看

echo $upload_data['full_path'];
另一答案

试试这样:

         if ( ! $this->upload->do_upload())
        {
            $error = array('error' => $this->upload->display_errors());

        }
        else
        {
            $data = $this->upload->data();
                    // $data will contain full inforation
                    echo "Full path is:". $data['full_path'];

        }
另一答案

从你发布,我假设你已经从某个变量的print_r给出了输出,比如$file_detail

如果你想从$file_detail获得full_path,你必须使用

$file_detail['upload_data']['full_path']
另一答案

成功上传后返回数组,您只需要检索索引键:

控制器:

if ( ! $this->upload->do_upload())
{
     $data['error'] = $this->upload->display_errors();
}
else
{
   $data['upload_data'] = $this->upload_data();
}
$this->load->view('myview', $data);

myview.php

<p>Full path: <?php echo $upload_data['full_path'];?></p>
另一答案

如果要在插入数据库后从上传中删除文件,可以使用unlink($ filename)从上传文件中删除文件

以上是关于如何在codeigniter中获取上传文件的完整路径?的主要内容,如果未能解决你的问题,请参考以下文章

获取 CodeIgniter 4 上传文件的文件名的方法

如何使用 Codeigniter 删除上传的文件?

如何在 Codeigniter 中上传文件名时添加前缀?

Codeigniter上传库获取拇指文件名

如何使用Javascript从文件上传中获取完整路径

如何在codeigniter中上传2个单独的图像