上传后文件无法读取

时间:2014-02-18 09:38:26

标签: php codeigniter file-upload

我正在使用Codeigniter框架的文件上传功能。用户使用上传csv文件,上传后我需要读取数据但是当文件上传时它们是不可读的,所以任何人都可以告诉我为什么会造成这种情况的合适原因?

我还检查了文件权限,它们是755。

以下是代码:

$config['upload_path'] = 'public/uploads/data'; //path to store file
    $config['allowed_types'] = 'csv|xls'; // file type can only be csv and xls
    $config['max_size'] = '1000'; // maximum file size       
    $this->load->library('upload', $config);
    if (!$this->upload->do_upload()) {
        $error = array('error' => $this->upload->display_errors(), 'path' => $config['upload_path']);
        $this->load->view('merchant/account/upload_fail', $error);
    } else {
        $data = array('upload_data' => $this->upload->data());
        $filename = '/public/uploads/data/' . $data['upload_data']['file_name'];
        $delimiter = ",";
        if (!file_exists($filename) || !is_readable($filename)) {  // some error occur
            echo 'got an error';

        } else {
               echo 'file is readable';
        }
    }

1 个答案:

答案 0 :(得分:0)

如果存在文件系统一致性问题,文件系统通常会在系统运行时进入只读状态。这在fstab中指定为errors = remount-ro,并且在FS访问失败或通过Alt + SysRq + U请求紧急只读重新安装时发生。你可以运行:

sudo fsck -Af -M

强制检查所有文件系统。作为其他答案之一,查看dmesg也非常有帮助。

编辑:不要忘记命令行上的-M。

你也可以尝试:

mount -o remount /