2012-02-28 31 views
1

./system/application/config/mimes.phpAutoCAD文件(.DWG,.DXF,的.dwf等)上传笨

'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文件?

回答

0

文件扩展名dwg必须在你allowed_types

$config['allowed_types'] = 'dwg'; 
$this->load->library('upload', $config); 

如果你要允许多种类型,它们必须是分隔管|

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

参考:http://codeigniter.com/user_guide/libraries/file_uploading.html

虽然它在当前的用户指南中似乎没有记载,但使用了星号*将允许所有类型:

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

我已经完成了上面提到的所有事情;哦,我试过'$ config ['allowed_types'] ='*';'。但它仍然没有帮助我:( – 2012-02-28 07:03:14

+0

)你可以发布你的实际代码与上传配置和一个示例文件名如果可能?你确定你可以上传其他文件类型吗? – 2012-02-28 07:05:20

+0

Config:'$ config ['file_name '] \t \t =日期(' YmdHis ').'_' 兰特(0,9)这 - $> getFileExt($ fieldName的)。 ''; \t \t \t $配置[ 'upload_path'] \t \t =真实路径(” ./上传/客户端/ BI/'); \t \t \t $配置[' allowed_types'] \t = 'DXF | DWG | DWF | GIF | JPG | PNG | JPEG'; \t \t \t $配置['max_size'] \t \t ='2000';' \t \t \t我已经改变了mime设置,增加了以下几行; ''dwf'=> array('drawing/x-dwf','model/vnd.dwf'),'dwg'=> array('application/acad','image/vnd.dwg','image/x '), \t \t \t \t'dxf'=> array('application/dxf','image/vnd.dwg','image/x-dwg')'现在它完美地上传图像,但显示错误尝试autocad文件。 – 2012-02-28 08:18:20

2

解决方案:

那些MIME类型根本没有为我工作。我刚刚使用application/octet-stream,并试过,它的工作!我解决了这个问题,但仍然想知道为什么这些MIME类型不起作用? !

+0

对于那些阅读今年后: - 这个答案是非常不推荐。 'application/octet-stream'是MIME类型相当于'杂项',因此服务器仍然可能被诱骗运行恶意代码(例如exe) 请参阅https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet#File_uploads获得更多洞察。 – Jarrod 2015-09-02 12:50:14

+0

我同意你的意见。这是近5年前我第一次面对这个问题时的一个问题。无论如何,感谢您的答复。 – 2017-01-20 20:09:07