FLV 文件的前 3 个字节是签名“FLV”。现在我的问题是:
PHP 是否有可能处理文件上传,以便我们可以挂钩上传文件的输入流并检查前 3 个字节?
情况是我不想上传完整的文件(在临时文件夹中),然后检查文件是否是 FLV,我只想读取上传流的前几个字节,如果它不是“FLV”,那么返回/退出。
该文件需要通过基于 HTML 的表单上传。不能依赖 javascript、flash 上传器或任何客户端验证解决方法,即需要一个纯基于 PHP 的解决方案。
我已经知道 PHP 不会将控制权移交给我们的脚本,直到它完成在临时文件夹中上传文件并填充全局变量,即$_POST
$_GET
$_FILES
etc.
这里还有一个有点类似的问题:如何在php中逐字节上传文件
但答案不能满足我的要求/问题。
任何想法真的很感激!
Thanks
首先,设置session.upload_progress.enabled
在你的php.ini
.
然后,使用session.upload_progress跟踪已上传的字节数。一旦达到最低阈值,请检查正在上传的临时文件,它将位于$_SESSION[unique_key]['files'][0]['tmp_name']
。如果文件不匹配,则设置$_SESSION[unique_key]["cancel_upload"]
to TRUE
,该文件将被拒绝。
To get unique_key
:
ini_get("session.upload_progress.prefix") . $_POST[ini_get("session.upload_progress.name")];
如果上述方法不起作用(我还没有测试过),那么您唯一的办法就是为 PHP 创建自己的自定义处理程序作为 Apache 模块(或者更好,作为自定义 CGI 应用程序)。在那里你可以进行过滤。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)