Php 从codeigniter中的服务器下载文件

Php 从codeigniter中的服务器下载文件,php,codeigniter,Php,Codeigniter,我正试图从我的服务器下载一个文件 这是我的控制器代码 public function download($id) { $this->load->helper('url'); $base_url = $this->config->item('base_url'); $base_path = $this->config->item('base_path'); $this->load->helper('download')

我正试图从我的服务器下载一个文件

这是我的控制器代码

public function download($id)
{
    $this->load->helper('url');
    $base_url = $this->config->item('base_url');
    $base_path = $this->config->item('base_path');
    $this->load->helper('download');

    $data = file_get_contents( $base_path.'/uploads/'.$id);
    $name = $id;
    force_download($name, $data);
}
但是,我得到了一个错误:

file_get_contents(path/filename): failed to open stream: No such file or directory.
我怎样才能解决这个问题?谢谢

问题在于路径本身。实际上,它不需要在文件名之间留空格。例如,它现在可以使用文件名xyz,但不能使用文件名ex。请尝试使用xyz。我想这是因为名字之间的空格。如何解决此问题?

请改用curl。 这可能是你的答案


在助手中添加该函数,效果很好。

您可以使用魔法常数的绝对路径\uuuu\DIR__


检查文件路径是否正确或文件是否存在。首先尝试回显路径检查回显$base_path的值。“/uploads/”。$id;死亡是的,问题出在路径本身。实际上,它并没有在文件名之间加上spcae。例如,它现在可以使用文件名xyz,但不能使用文件名ex。请尝试使用xyz。我想这是因为名字中间的空格。我怎样才能解决这个问题?
$data = file_get_contents( __ DIR__.'/../uploads/'.$id);