Codeigniter:MP4 视频上传不起作用

Posted

技术标签:

【中文标题】Codeigniter:MP4 视频上传不起作用【英文标题】:Codeigniter: MP4 Video Upload not working 【发布时间】:2013-11-12 19:24:11 【问题描述】:

我正在研究一个问题很长时间,但仍然没有找到任何解决方案。

我正在使用 codeigniter 上传 mp4 文件。 在此之前,我在 config/mimes.php 中为 mp4 添加了 mime 类型。 我都试过了:mp4 => video/mp4mp4 => array('video/mp4', 'video/3gpp')

这两种方法都可以在本地服务器上完美运行,但是每当我在实时服务器上测试它时,它总是给出相同的错误消息“不允许您尝试上传的文件类型。”。

我又尝试了一件事。 IE。 $config['allowed_types'] = "*";

它在本地和在线服务器上都能完美运行。

但我只想要 mp4 视频类型。

有人有解决这个奇怪问题的办法吗?

【问题讨论】:

您是否尝试过将其设置为 $config['allowed_types'] = "mp4" ? 是的,我试过 $config['allowed_types'] = "mp4。但它只能在本地服务器上工作,但不能在实时服务器上工作。 您可以发布您用来验证该文件类型的代码吗? 尝试 var_dump $this->upload->file_type。这应该为您提供由 codeigniter 检测到的上传文件的 mime 类型。问题很可能是您的服务器将文件检测为与本地计算机不同的 MIME 类型。 @Jeemusu 非常感谢您的建议。你是对的。我检查了这个。本地服务器将 file_type 检测为只是“video/mp4”。但在线它检测文件类型为“应用程序/八位字节流”。不知道为什么,但我得到了解决方案。我在配置中添加了这个 mime,它可以在本地和在线服务器上运行。 【参考方案1】:

终于我的问题得到了解决,所以我正在写这个答案。

本地和在线服务器中的大多数 MIME 类型检测是不同的。

在我的例子中,本地服务器将 file_type 设置为“video/mp4”。但在线服务器将 mime 类型检测为“application/octet-stream”。

所以我在我的配置文件夹的 mime 类型列表中添加了数组:

'mp4' => array('video/mp4', 'application/octet-stream'),

现在它可以在本地和在线服务器上完美运行。

【讨论】:

我应该在哪里添加这个数组?? mp4 => array('video/mp4', 'video/3gpp') 在配置中-> mimes.php【参考方案2】:

如果一切都不起作用,像这样重新排列允许的类型顺序,首先放置视频格式:

$config['allowed_types'] = 'mp4|jpg|png|'

它适用于我的情况。

【讨论】:

【参考方案3】:

当我们上传扩展名为 mp4 的视频时,我依赖于视频 mime 文件类型,但在 CodeIgniter 上传库中使用 php 函数 finfo_file 来检测 file_type 通过这个函数我们得到其他 file_type。前任。我得到 video/3gpp

所以我改变了 config/mimes.php

'mp4' => array('video/mp4', 'video/3gpp'),

它对我有用。

谢谢

【讨论】:

以上是关于Codeigniter:MP4 视频上传不起作用的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter 中视频文件上传的奇怪问题

Codeigniter 文件上传不起作用

Codeigniter 上传文件不起作用

“上传路径似乎无效”。 Codeigniter文件上传不起作用[关闭]

视频文件转换为 .mp4 后不显示

ffmpeg:组合/合并多个 mp4 视频不起作用,输出仅包含第一个视频