我在研究一个问题很长时间,但仍然没有找到任何解决方案。
我正在使用codeigniter上传mp4文件。在此之前,我在config/mimes.php中添加了mp4的mime类型。我两个都试过了:mp4 => video/mp4
和mp4 => array('video/mp4', 'video/3gpp')
这两个工作完美的本地服务器,但每当我测试这个在现场服务器上,然后它总是给予出相同的错误消息“文件类型,你试图上传是不允许的。”
我又试了一件事。即**$config['allowed_types'] = "*";
**
它在本地和在线服务器上都能完美工作。
但我只想mp4视频类型。
有没有人能解决这个奇怪的问题?
4条答案
按热度按时间ru9i0ody1#
最后我得到了我的问题的解决方案,所以我写这个答案。
在本地和在线服务器上对MIME类型的检测通常是不同的。
在我的例子中,* 本地服务器获取的file_type为“video/mp4”。但是在线服务器检测到mime类型为“application/octet-stream”。*
所以我在我的config文件夹的mime类型列表中添加了两个数组:
'mp4' => array('video/mp4', 'application/octet-stream'),
现在它在本地和在线服务器上都能完美工作。
qxgroojn2#
如果一切都不起作用,请重新排列允许的类型顺序,将视频格式放在第一位:
在我的情况下它工作。
ckocjqey3#
当我们上传扩展名为mp4的视频时,我依赖于视频mime文件类型,但在CodeIgniter上传库中使用php函数finfo_file来检测文件类型。例如,我得到视频/3gpp
所以我在config/mimes.php中进行了更改
'mp4' => array('video/mp4', 'video/3gpp'),
它为我工作。
谢谢
mzmfm0qo4#