我有一个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 服务器上时,它无效。
答案 0 :(得分:2)
对于不允许您尝试上传的文件类型,由于您的文件类型错误或无法实现,会出现此问题。
请在下面的步骤中应用以获取您的文件类型。
您可以查看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
答案 1 :(得分:2)
Codeigniter 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')
那么它会起作用
答案 2 :(得分:1)
转到<?php
$i = 0;
if ( have_posts() ) : while ( have_posts() ) : the_post();
if($i % 5 == 0){?>
<div class="forward">
SOME NEWSLETTER CODE HERE
</div>
<?}
$post_id = get_the_ID(); ?>
<?php get_template_part('content','home'); ?>
<?php endwhile; ?>
<?php endif; ?>
- &gt;第32行(xls) - &gt;将config/mimes.php
添加到现有数组中。
'application/vnd.ms-office'
这项工作仅针对任何其他类型的xls获取mime类型并添加到此数组中。
答案 3 :(得分:1)
如果使用liberOffice或Open Office,将遇到此问题。在您的application / config / mimes.php中添加“ xlsx”中的“ 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')
答案 4 :(得分:0)
您的代码
$config['allowed_types'] = 'xlsx|csv|xls';
但在U buntu中,保存文件类型为
ods
格式。因此永远不会允许上传。添加
$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
答案 5 :(得分:-1)
在您的代码中添加以下行
$config['allowed_types'] = '*';
$config['detect_mime'] = false;
这是配置设置。