我正在研究一个问题很长时间但仍然找不到任何解决方案。
我使用codeigniter上传mp4文件。
在此之前,我在config / mimes.php中为mp4添加了mime类型。
我试过了两个: mp4 => video/mp4
和
的 mp4 => array('video/mp4', 'video/3gpp')
这两种方法在本地服务器上都很完美,但每当我在Live服务器上测试它时,它总是会给出相同的错误消息“你试图上传的文件类型是不允许的。”。
我又尝试了一件事。即
的 $config['allowed_types'] = "*";
它在本地和在线服务器上都很完美。
但我只想要mp4视频类型。
任何人都有解决这个奇怪问题的方法吗?
答案 0 :(得分:5)
最后,我得到了问题的解决方案,所以我正在写这个答案。
本地和在线服务器中大多数mime类型的检测都不同。
就我而言,本地服务器将file_type变为“video / mp4”。但是在线服务器将mime类型检测为'application / octet-stream'。
所以我在配置文件夹的mime类型列表中添加了数组:
<强> 'mp4' => array('video/mp4', 'application/octet-stream'),
强>
现在它在本地和在线服务器上都能正常运行。
答案 1 :(得分:0)
当我们上传带有扩展名mp4的视频时依赖于视频mime文件类型但是在CodeIgniter上传库中使用php函数 finfo_file 来检测file_type这个函数我们得到其他file_type。防爆。我得到 video / 3gpp
所以我改变了config / mimes.php
<强> 'mp4' => array('video/mp4', 'video/3gpp'),
强>
它为我工作。
由于
答案 2 :(得分:0)
如果一切都不起作用,请重新排列允许的类型顺序,首先放置视频格式:
$config['allowed_types'] = 'mp4|jpg|png|'
它适用于我的情况。