无法在 codeigniter 中上传 excel 文件
unable to upload an excel file in codeigniter
我有一个 Codeigniter 项目,它可以通过上传 excel 文件并使用 PHPExcel 读取它来将数据插入数据库。它在我的本地主机上工作,但是当我将它上传到 LAMP 服务器时,它给我一个错误 不允许您尝试上传的文件类型。 我要怎么办解决这个问题?
编辑
在我的项目中,还有一个文件图片上传..
public function uploadConfig(){
$this->load->library('PHPExcel');
$this->load->library('PHPExcel/IOFactory');
$config['upload_path'] = './csv_uploads/';
$config['allowed_types'] = 'xlsx|csv|xls';
$config['max_size'] = '10000';
$config['overwrite'] = true;
$config['encrypt_name'] = FALSE;
$config['remove_spaces'] = TRUE;
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!is_dir('csv_uploads'))
{
mkdir('./csv_uploads', 0777, true);
}
// gif|jpg|jpeg|png
}
这适用于我位于 XAMPP 的本地主机。但是,当我将它上传到我的 LAMP 服务器时,它没有工作。
在你的代码中
$config['allowed_types'] = 'xlsx|csv|xls';
But in Ubuntu it save file types is ods
format. So it will never let allow to upload. add that
$config['allowed_types'] = 'xlsx|csv|xls|ods';
和在config/mimes.php
添加这个
'ods' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'),
提供渗透写入文件夹
sudo chown apache:apache -R /var/www/html
并在 php.ini
- 检查
file_upload
是否开启
- 并检查最大上传限制
- 以及检查最大执行时间
对于不允许您尝试上传的文件类型出现此问题是因为您的文件类型错误或不符合要求。
请按照以下步骤获取您的文件类型。
您可以查看 system/libraries/Upload.php 第 199 行:
$this->_file_mime_type($_FILES[$field]);
将该行更新为:
$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();
现在您可以看到您的实际文件类型,例如 xlsx 或 csv 或 xls 或 ods
现在您可以在代码下方添加您的文件类型
$config['allowed_types'] = 'xlsx|csv|xls';
也加入config/mimes.php
代码点火器 3
添加到您的 config/mimes.php 类型 'application/octet-stream'
'xlsx' => array('application/octet-stream','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip')
然后就可以了
转到 config/mimes.php
-> 第 32 行 (xls) -> 添加 'application/vnd.ms-office'
到现有数组中。
'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel', **'application/vnd.ms-office'**)
这仅适用于任何其他类型的 xls 获取 mime 类型并添加到此数组中。
在您的代码中添加以下行
$config['allowed_types'] = '*';
$config['detect_mime'] = false;
这是配置设置。
如果您使用的是 libreOffice 或 Openoffice,您将会遇到这个问题。添加 "application/octet-stream" 输入 'xlsx' 到您的 application/config/mimes.php
'xlsx' => array('application/octet-stream','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip')
我有一个 Codeigniter 项目,它可以通过上传 excel 文件并使用 PHPExcel 读取它来将数据插入数据库。它在我的本地主机上工作,但是当我将它上传到 LAMP 服务器时,它给我一个错误 不允许您尝试上传的文件类型。 我要怎么办解决这个问题?
编辑 在我的项目中,还有一个文件图片上传..
public function uploadConfig(){
$this->load->library('PHPExcel');
$this->load->library('PHPExcel/IOFactory');
$config['upload_path'] = './csv_uploads/';
$config['allowed_types'] = 'xlsx|csv|xls';
$config['max_size'] = '10000';
$config['overwrite'] = true;
$config['encrypt_name'] = FALSE;
$config['remove_spaces'] = TRUE;
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!is_dir('csv_uploads'))
{
mkdir('./csv_uploads', 0777, true);
}
// gif|jpg|jpeg|png
}
这适用于我位于 XAMPP 的本地主机。但是,当我将它上传到我的 LAMP 服务器时,它没有工作。
在你的代码中
$config['allowed_types'] = 'xlsx|csv|xls';
But in Ubuntu it save file types is
ods
format. So it will never let allow to upload. add that
$config['allowed_types'] = 'xlsx|csv|xls|ods';
和在config/mimes.php
添加这个
'ods' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'),
提供渗透写入文件夹
sudo chown apache:apache -R /var/www/html
并在 php.ini
- 检查
file_upload
是否开启 - 并检查最大上传限制
- 以及检查最大执行时间
对于不允许您尝试上传的文件类型出现此问题是因为您的文件类型错误或不符合要求。
请按照以下步骤获取您的文件类型。
您可以查看 system/libraries/Upload.php 第 199 行:
$this->_file_mime_type($_FILES[$field]);
将该行更新为:
$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();
现在您可以看到您的实际文件类型,例如 xlsx 或 csv 或 xls 或 ods
现在您可以在代码下方添加您的文件类型
$config['allowed_types'] = 'xlsx|csv|xls';
也加入config/mimes.php
代码点火器 3
添加到您的 config/mimes.php 类型 'application/octet-stream'
'xlsx' => array('application/octet-stream','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip')
然后就可以了
转到 config/mimes.php
-> 第 32 行 (xls) -> 添加 'application/vnd.ms-office'
到现有数组中。
'xls' => array('application/excel', 'application/vnd.ms-excel', 'application/msexcel', **'application/vnd.ms-office'**)
这仅适用于任何其他类型的 xls 获取 mime 类型并添加到此数组中。
在您的代码中添加以下行
$config['allowed_types'] = '*';
$config['detect_mime'] = false;
这是配置设置。
如果您使用的是 libreOffice 或 Openoffice,您将会遇到这个问题。添加 "application/octet-stream" 输入 'xlsx' 到您的 application/config/mimes.php
'xlsx' => array('application/octet-stream','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip')