以相同的形式上传图像和mp3,但mp3没有上传

cik*_*omo 2 php

我正在尝试以相同的形式上传图像和MP3,但图像上传而mp3不是.这是我的表格

 <form action="upload.php"
 enctype="multipart/form-data" method="post">
 <p>
 Please select image<br>
 <input type="file" name="image" size="40">
 </p>
 <p>
 Please select audio<br>
 <input type="file" name="audio" size="40">
 </p>
Run Code Online (Sandbox Code Playgroud)

这是我的upload.php

// checking image
if (($_FILES["image"]["type"] == "image/gif")
or ($_FILES["image"]["type"] == "image/jpeg")
or ($_FILES["image"]["type"] == "image/pjpeg")
or ($_FILES["image"]["type"] == "image/png"))
{
    if ($_FILES["image"]["error"] == 0)
    {
        move_uploaded_file($_FILES["image"]["tmp_name"],
        "upload/".$_FILES["image"]["name"]);

    }
    else
    {
        echo "image upload failed";
    }
}
else
{
    echo "file is not supported image";

}

// checking mp3
if (substr($_FILES["audio"]["name"],-3) == "mp3")
{
    if ($_FILES["audio"]["error"] == 0)
    {
        move_uploaded_file($_FILES["audio"]["tmp_name"],
        "upload/".$_FILES["audio"]["name"]);
    }
    else
    {
        echo "audio upload failed";
    }
}
else
{
    echo "file is not supported audio";

}
Run Code Online (Sandbox Code Playgroud)

现在,图像获取上传并移动到./upload但是在mp3上它回应"音频上传失败".不明白

Man*_*pka 6

尝试使用echo $_FILES["audio"]["error"]值并查看错误数.零意味着没有错误.在您的情况下会发生一些错误.在这里你可以得到错误号http://php.net/manual/en/features.file-upload.errors.php的含义

比较为零是不好的做法

if ($_FILES["audio"]["error"] == 0)
Run Code Online (Sandbox Code Playgroud)

你应该使用常量:

if ($_FILES["audio"]["error"] == UPLOAD_ERR_OK)
Run Code Online (Sandbox Code Playgroud)

但这只是最好的做法.它不会影响代码的结果.