CI文件上传使rpt文件的文件类型错误

时间:2019-06-04 19:02:12

标签: php codeigniter file-upload

我正在尝试使用以下代码上传Crystal Reports(.rpt)文件:

$config=array(
 'upload_path'=>$_SERVER['DOCUMENT_ROOT']."/assets/uploads/rpt/",
 'allowed_types'=>"rpt",
 'overwrite'  => TRUE,
 'file_name' =>$filename
);
$this->load->library('upload', $config);
$this->upload->initialize($config);
if($this->upload->do_upload('rpt1'))
{
 echo "Done";
}
else
 echo $this->upload->display_errors();

但是它返回:

  

不允许您尝试上传的文件类型。

然后我试图找出上传的文件类型:

print_r($_FILES['rpt1']['type']);

它返回:

  

应用程序/八位字节流

我进行了以下更新:

'allowed_types'=>"rpt|application/octet-stream",

但是它没有用,我仍然收到相同的错误消息。

我还在 application / config / mimes.php

中添加了以下行
'rpt'   =>  'application/octet-stream',

为了将.rpt文件上传到服务器,我还需要做什么?

1 个答案:

答案 0 :(得分:0)

我去了

  

system / libraries / Upload.php

在行号

454(CI 3.x)并编写了以下代码行:

var_dump($this->file_type); die();

执行后,它返回

  

文本/纯文本

使用

print_r($_FILES['rpt1']['type']);

给予

  

应用程序/八位字节流

现在

  

application / config / mimes.php

我写道:'rpt' => 'text/plain', 这次,一切正常。