Php 在codeigniter中上载Autocad文件(.dwg、.dxf、.dwf等)

Php 在codeigniter中上载Autocad文件(.dwg、.dxf、.dwf等),php,codeigniter,dwg,Php,Codeigniter,Dwg,我在/system/application/config/mimes.php 'dwg' => array('application/acad', 'application/x-acad', 'application/autocad_dwg', 'image/x-dwg', 'application/dwg', 'application/x-dwg', 'application/x-autocad', 'image/vnd.dwg', 'drawing/dwg'), 我试图上载.dwg文

我在
/system/application/config/mimes.php

'dwg' => array('application/acad', 'application/x-acad', 'application/autocad_dwg', 'image/x-dwg', 'application/dwg', 'application/x-dwg', 'application/x-autocad', 'image/vnd.dwg', 'drawing/dwg'),
我试图上载.dwg文件,但它显示了如下错误:

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


如何上载.dwg文件?

文件扩展名
dwg
必须在您的
允许类型中:

$config['allowed_types'] = 'dwg';
$this->load->library('upload', $config);
如果要允许多个类型,则它们必须以管道
|
分隔:

$config['allowed_types'] = 'dwg|dxf|dwf';
参考:

尽管当前用户指南中似乎没有记录,但使用星号
*
将允许所有类型:

$config['allowed_types'] = '*';

解决方案:


那些mime类型根本不适合我。我刚刚使用了
应用程序/octet-stream
并尝试了一下,成功了!我解决了这个问题,但仍然想知道为什么那些mime类型不起作用

我已经做了你上面提到的所有事情;哦,我尝试了
$config['allowed_types']='*'也是。但它仍然没有帮助我:(如果可能的话,你能用上传配置和一个示例文件名发布你的实际代码吗?你确定你可以上传其他文件类型吗?配置:
$config['file\u name']=date('YmdHis')。''''.rand(0,9)。'$this->getFileExt($fieldName);$config['upload\u path']=realpath('./uploads/client/bi/)$config['allowed_types']=“dxf | dwg | dwf | gif | jpg | png | jpeg”;$config['max_size']=“2000”
我通过添加以下行更改了mime设置;
'dwf'=>数组('drawing/x-dwf','model/vnd.dwf'),'dwg'=>数组('application/acad','image/vnd.dwg','image/x-dwg'),'dxf'=>数组('application/dxf'、'image/vnd.dwg'、'image/x-dwg')
。现在它完美地上传了图像,但在尝试autocad文件时显示错误。我正在使用此文件进行测试:这些mime类型对我根本不起作用。我使用了
应用程序/octet-stream
并尝试了,它起了作用!我解决了问题,但仍然想知道为什么这些mime类型不起作用?!对于今年以后阅读的人来说:-这是swer非常不受推荐。
application/octet-stream
是等同于“miscellaneous”的mime类型,因此服务器仍可能被诱骗运行恶意代码(例如exe)请查看以获得更多的洞察力。我同意你的观点。这是近5年前我第一次面对这个问题时提出的一个问题。无论如何,谢谢你的回答。