我正在使用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';
}
}
答案 0 :(得分:0)
如果存在文件系统一致性问题,文件系统通常会在系统运行时进入只读状态。这在fstab中指定为errors = remount-ro,并且在FS访问失败或通过Alt + SysRq + U请求紧急只读重新安装时发生。你可以运行:
sudo fsck -Af -M
强制检查所有文件系统。作为其他答案之一,查看dmesg也非常有帮助。
编辑:不要忘记命令行上的-M。
你也可以尝试:
mount -o remount /