Php mp3和pdf文件上传与jpg不一样

Php mp3和pdf文件上传与jpg不一样,php,file-upload,Php,File Upload,这是我的upload.php代码: <?php if(isset($_FILES['file'])) { $file = $_FILES['file']; //File properties $file_name = $file['name']; $file_tmp = $file['tmp_name']; $file_size = $file['size']; $file_error = $file['error']; //Wo

这是我的upload.php代码:

<?php
if(isset($_FILES['file'])) {
    $file = $_FILES['file'];

    //File properties
    $file_name = $file['name'];
    $file_tmp = $file['tmp_name'];
    $file_size = $file['size'];
    $file_error = $file['error'];

    //Work out the file extension
    $file_ext = explode('.', $file_name);
    $file_ext = strtolower(end($file_ext));

    $allowed = array('txt', 'jpg', 'mp3', 'pdf');

    if(in_array($file_ext, $allowed)){
        if($file_error == 0){
            if($file_size <= 10000000){

                $file_name_new = uniqid('', true) . '.' . $file_ext;
                $file_destination = 'uploads/' . $file_name_new;

                if(move_uploaded_file($file_tmp, $file_destination)){
                    echo $file_destination;
                }
            }
        }
    }
}
?>


我不明白的是,为什么它不允许我上传mp3和pdf文件,它似乎与jpg文件完美配合,但当我尝试上传声音或acrobat文件时,它似乎不起作用,我做错了什么?

此外,我检查了php配置文件,并将最大文件大小设置为10mb,因此文件大小不应成为问题。因此,当我上载jpg文件时,它会回显文件目的地(基本上只是uniqid),但mp3文件不会出现这种情况(我觉得这是我的问题的一个线索,但我仍然无法找出实际原因)注意,您不应该使用扩展名来确定文件类型(因为它们可能不正确/更改),通常应该依赖MIME检测。也就是说,如果您的文件大于10MB,则不会
if($file\u size同样,上传mp3时,
$file\u error
的值是多少?老实说,我从一个关于如何上传文件的教程中复制了大部分代码,我看了几遍,从技术上理解了它是如何工作的,但我仍然是一个非常新手的php程序员,所以…简单明了,我需要帮助弄清楚如何上传文件。)und文件