php - windows下可以上传文件,linux下不行

标签 php file codeigniter file-upload

我创建了一个 Controller 来处理文件发布,将上传的文件移动到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 的普通图片 uploader 。 为什么我在 Linux 上遇到错误?

我尝试了多种上传路径的方法,但都不起作用。文件夹具有 chmod 777。

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

这些都不能在 Linux 下工作。

最佳答案

临时目录丢失。上传的文件首先移动到临时目录,然后再移动到目的地。目录名称可能在某处配置,或者您可以在文档中找到它。该目录在Linux服务器上不存在,在Windows服务器上存在。

关于php - windows下可以上传文件,linux下不行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3147053/

相关文章:

php - 将类别从父可配置产品复制到 Magento 中的简单子(monad)产品

php - 验证 Laravel 请求的最佳方法

Python 读取由分隔符确定的文件\r\n

iphone - 在 iPhone 上将音频文件与 NSData 正确组合为一个

c - 类似于 Linux 的 C 库中的 SetFileLength() 的函数

php - codeigniter 中的自定义助手

jquery - 根据一天中的时间在页面上的不同位置显示对象

php - 使用 PHPWord 下载 DOCX 文件时出现损坏的文件

php - 最多四个 <td>,然后开始新的 <tr>(MySQL 查询)

mysql - 如何比较两个表并保存到另一个表中