我创建了一个处理文件帖子的控制器,将上传的文件移动到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下运行。
答案 0 :(得分:4)
缺少临时目录。在移动到目标之前,首先将上载的文件移动到临时目录。目录名称可能在某处配置,或者您可以在文档中找到它。此目录在Linux服务器上不存在,并且在Windows服务器上存在。