1

我正在尝试使用 Codeigniter 在服务器中上传视频,在本地主机中我可以做到,但是在服务器中时它不起作用。即使do_upload() 函数返回 true。

当我测试服务器根目录时, print_r($_SERVER['DOCUMENT_ROOT']); 它返回

/var/www/mjpp/data/www/supps.mydomainname.com

还有 $updata = $this->upload->data();回报

[file_path] => /var/www/mjpp/data/www/supps.mydomainname.com/public/video

你能告诉我为什么/var/www/mjpp/data/出现在我的主域名之前,这是上传视频错误的原因吗?

提前谢谢你,对不起我的英语不好。

4

3 回答 3

1

/var/www/mjpp/data/www/supps.mydomainname.com通常是您的文档根目录在系统中的绝对位置。但是,您通常无权访问用户目录之上的任何内容。

public/video/var/www/mjpp/data/www/supps.mydomainname.com/public/video(作为绝对路径)是您传递给Upload库的upload_path. 这是图书馆将尝试上传文件的地方。这个文件夹应该存在并且是可写的(例如拥有 0777 权限)。

于 2013-12-17T14:02:00.293 回答
0

不要在 CI 中使用 $_SERVER['DOCUMENT_ROOT'],使用 URL Helper

$this->load->helper('url');

echo base_url();
于 2013-07-22T06:15:38.300 回答
0

文件上传时无需使用 Document Root,Codeigniter 本身有配置。

这是图片上传的示例代码,

function do_upload()
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '100';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

    $this->load->library('upload', $config);

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

        $this->load->view('upload_form', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());

        $this->load->view('upload_success', $data);
    }
}

您只需要更改配置($config 数组),对于您的问题,您应该使用 $config['upload_path']。

跟随 codigniter 文件上传教程

于 2013-07-21T06:06:58.700 回答