文件上传适用于Windows,但不适用于Linux

时间:2010-06-30 07:00:38

标签: php file codeigniter file-upload

我创建了一个处理文件帖子的控制器,将上传的文件移动到index.php文件旁边的文件夹中(不在应用程序文件夹中,因为我想直接通过http访问文件)。

上传适用于基于Windows的服务器,但不适用于Linux。 PHP版本在每台服务器和我的本地机器上仍然是相同的。

代码:

    $config['upload_path'] = 'files/pictures/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '10240';
    $config['encrypt_name'] = true;

    $this->upload->initialize($config);

    if ( ! $this->upload->do_upload('Filedata'))
    {
        //error handling
    }   
    else
    {
        $data = array('upload_data' => $this->upload->data());
        imageResize($data['upload_data']['full_path'],600);
    }

正如您所看到的,它并不特别,它是基于CI的普通图像上传器。 为什么我在Linux上出错?

我尝试了几种上传路径,但都没有。文件夹有chmod 777。

    $config['upload_path'] = './files/pictures/';
    $config['upload_path'] = './files/pictures';
    $config['upload_path'] = 'files/pictures/';
    $config['upload_path'] = 'files/pictures';

这些都不能在Linux下运行。

1 个答案:

答案 0 :(得分:4)

缺少临时目录。在移动到目标之前,首先将上载的文件移动到临时目录。目录名称可能在某处配置,或者您可以在文档中找到它。此目录在Linux服务器上不存在,并且在Windows服务器上存在。