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年前我第一次面对这个问题时提出的一个问题。无论如何,谢谢你的回答。