【发布时间】:2019-10-20 08:04:23
【问题描述】:
我正在尝试使用以下代码上传 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 文件上传到服务器,我还需要做什么?
【问题讨论】:
-
他们真的使用管道分隔符吗?不是数组?
['allowed_types' => ['rpt' => 'application/octet-stream']]...不熟悉CI。 -
@ficuscr 这只是另一种选择。我们可以直接创建一个配置数组并传递它,也可以设置单独的键值。我认为这不会影响
-
看到很多关于这个话题的...stackoverflow.com/questions/9815208/…也许只是
"*"?无论如何也不能真正相信它。 Mime 类型就是这样。 -
@ficuscr 实际上我只需要允许 rpt 文件,所以不想使用 *.我已经阅读了您分享的文章,在我的问题描述中我提到我已经添加了 mime 类型。
标签: php codeigniter file-upload