如何仅在验证后在 php 中上传 .mp3 文件,我的 .wav 文件很容易上传
Posted
技术标签:
【中文标题】如何仅在验证后在 php 中上传 .mp3 文件,我的 .wav 文件很容易上传【英文标题】:How to upload .mp3 file in php only after validation,my .wav file gets uploaded easily 【发布时间】:2013-01-22 13:50:07 【问题描述】:if ((($_FILES["myfile"]["type"] == "audio/mp3") ||
($_FILES["myfile"]["type"] == "audio/wav")) &&
($_FILES["myfile"]["size"] < 20000000))
if (move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path) )
$result1=1;
【问题讨论】:
将此 mime 用于 mp3:audio/mpeg ["type"] 值由浏览器提供:它可能是伪造的、错误的,甚至丢失。不要相信它! 【参考方案1】:只有print $_FILES["myfile"]["type"];
用于真正的 mp3 文件,然后复制该值并使用它而不是音频/mp3,因为 mp3 的 MIME 类型不会是“音频/mp3”,我认为它是 audio/mpeg
请检查这个Link,因为它不建议依赖浏览器发送的$_FILES["myfile"]["type"]
。
【讨论】:
感谢您的回答:)【参考方案2】:两件事。
检查.mp3
文件的大小。
检查.mp3
的文件类型,如果它实际上是audio/mp3
。试试print_r($_FILES);
。
$type = $_FILES["myfile"]["type"];
$size = $_FILES["myfile"]["size"];
if( ( ($type == "audio/mp3") || ($type == "audio/wav") ) && ($size < 20000000))
if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path) )
$result1=1;
希望对你有帮助。
【讨论】:
抱歉没有解释清楚,但我的意思是我只想上传 .wav 和 .mp3 文件,使用上面我给出的代码,.wav 文件很容易上传,但 .mp3文件没有上传..【参考方案3】:您可以通过评估上传文件的扩展名来检查,或者如果您想检查文件级别,那么您可以使用其中一个梨包https://pear.php.net/package/MP3_ID
【讨论】:
以上是关于如何仅在验证后在 php 中上传 .mp3 文件,我的 .wav 文件很容易上传的主要内容,如果未能解决你的问题,请参考以下文章