加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 没有给出mime类型

发布时间:2020-12-13 17:13:51 所属栏目:PHP教程 来源:网络整理
导读:我目前正在构建一个允许用户上传文件的 PHP应用程序.我目前在上传页面,但我的验证系统不起作用.我正在使用此系统将文件验证为音频文件. // Set our file name and extension$fname = $_FILES['file']['name'];$extension = strtolower(substr($fname,strpos(
我目前正在构建一个允许用户上传文件的 PHP应用程序.我目前在上传页面,但我的验证系统不起作用.我正在使用此系统将文件验证为音频文件.

// Set our file name and extension
$fname     = $_FILES['file']['name'];
$extension = strtolower(substr($fname,strpos($fname,'.') + 1));

// Check file
if ($extension == 'mp3' && $_FILES['file']['type'] == 'audio/mpeg') {
    //File is valid mp3
} else {
    //File is invalid
}

现在这不起作用,但奇怪的是当我回显$_FILES [‘file’] [‘type’]它没有回显出音频文件的mime类型.当我为任何其他文件类型执行此操作时,它会成功回显它.

它不仅为音频文件提供mime类型.我已经尝试过使用WAV和M4A文件,它也没有返回任何一个.它是文件类型的东西,还是我必须编辑我的xampp服务器中的.htaccess文件或MIME.types文件.还有更好的方法来验证上传的文件吗?

另请注意,它在我的xampp服务器上执行此操作,以及我用于测试目的的免费服务器.

谢谢您的帮助.

解决方法

$_FILES [‘file’] [‘type’]来自上传文件的浏览器,因此您根本不能依赖此值.

查看finfo_file以根据文件内容识别文件类型.由于用户可以使用mp3扩展程序上传恶意代码,因此文件的扩展名也不可靠.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读