2016-07-12 26 views
1

我们得到一个错误您尝试上传的文件类型是不允许的笨版本3.0.4

错误:

Error: The filetype you are attempting to upload is not allowed.

array(1) { ["csv"]=> array(5) { ["name"]=> string(18) "cod_sp_payment.csv" ["type"]=> string(24) "application/vnd.ms-excel" ["tmp_name"]=> string(24) "C:\xampp\tmp\php5910.tmp" ["error"]=> int(0) ["size"]=> int(155) } } 

控制器代码:

$config['upload_path'] = './uploads/excel/'; 
$config['allowed_types'] = 'text/comma-separated-values|application/csv|application/excel|application/vnd.ms-excel|application/vnd.msexcel|text/anytext|text/plain|text/csv|csv'; 
$this->load->library('upload', $config); 

if(! $this->upload->do_upload('csv')) { 

    $error = array('error' => $this->upload->display_errors()); 

    // $this->load->view('upload_form', $error); 

    echo $this->upload->display_errors(); 
} 

$upload_data = $this->upload->data(); 

exit(); 

回答

1

$config['allowed_types'] = 'csv';可能不会总是这样做。您可能需要以下

text/comma-separated-values|application/csv|application/excel|application/vnd.ms-excel|application/vnd.msexcel|text/anytext|text/plain|text/csv|csv 

添加像一些更多类型在你的答案,你可以找到

[type] => application/vnd.ms-excel 

MIME类型为ms-excel。所以CSV将无法​​正常工作。我们ca't指定csv文件的mimtype由于这种不同的MIME类型

**注:**。在你的代码中的另一个错误

Message: fopen(test2/uploads/excel/cod_sp_payment.csv): failed to open stream: No such file or directory

请检查该文件存在与否

+0

@AnuAbraham但很难在代码中留下评论,你可以通过点击标签下方的编辑按钮来更新你的问题。 – user4419336

+0

@ Arun我们已经按照您的建议更改了我们的代码。请检查上面的代码 –

0

请确认您的config/mimes.php是否包含文件类型。 要知道上传文件的文件类型,请执行下列操作:

if(! $this->upload->do_upload('csv')) 
{ 
    $error = array('error' => $this->upload->display_errors()); 
    // $this->load->view('upload_form', $error); 
    echo $this->upload->data(); 
    echo $this->upload->display_errors(); 
} 
$upload_data = $this->upload->data(); 
0

这是因为不同的服务器上区别对待的文件。它可以是相同的文件,但mime类型不会被视为相同。

解决办法:

  1. 在笨,打开文件系统/库/ upload.php的。在199行(在CI ver.3.x中),将行$this->file_size = $_FILES[$field]['size'];更改为$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();

  2. 将文件上传到要测试的服务器。运行测试。确定您的文件类型。复制稍后再次使用的文件类型。

  3. 现在删除上述步骤1中的更改​​并重新上传文件。

  4. 现在打开文件application/config/mimes.php。转到第97行。这是具有'xlsx'的mime类型的部分。在此粘贴新的MIME类型。将文件上传到您的服务器。

完成。现在您的应用程序/上传应该可以工

我只是发现了类似的答案,这在这里:CodeIgniter: "The filetype you are attempting to upload is not allowed."

看起来更加细致。

相关问题