php中的mp3歌曲上传代码工作不正常


mp3 song upload code in php is not working well

我有一个网站,在这里我需要实现一个php函数来上传一首歌(mp3),并需要播放那首歌。我已经做了一个代码。查看我的代码

if(trim($_FILES['frmFile']['name'])!=""){ 
        if (($_FILES["frmFile"]["type"] == "audio/mpeg" || $ext=="mp3" ||  $ext=="MP3")&& ($_FILES["frmFile"]["size"] < 2000000))
            { 
            if ($_FILES["frmFile"]["error"] > 0)
            {
                $error="Error In Uploading";
                exit;
            }
            else
            {
                $orgFileNmae=$_FILES['frmFile']['name'];
                $uniqname = rand().$fileName.".".$ext;
                 $uploadfile=$uploaddir.$uniqname;
                if(move_uploaded_file($_FILES['frmFile']['tmp_name'], $uploadfile)) {
                }
            }
            }else{
                $error="Invalid file";
            }
            }

我从网上下载了一首mp3歌曲,并试图上传文件,但它显示

上传时出错,我已经打印了文件属性,然后我得到了$_FILES["frmFile"]["error"] =1

然后我只需在vLc和其他播放器中播放下载的代码,它运行良好。那为什么这个文件上传不正确呢。。

我已经打印了上传的文件数组,然后我得到了的结果

Array ( [name] => blind_willie.mp3 [type] => [tmp_name] => [error] => 1 [size] => 0 )

有人知道吗?

任何人都有上传mp3歌曲的好代码

提前感谢

根据PHP文档,上传错误1意味着文件太大,超过了预设的PHP允许上传文件的最大大小。

代码的逻辑流也是向后的——在执行其他操作之前,首先应该检查['error']参数。上传失败(或不存在)时,您可能无法获得有效的文件名,但您仍然可以继续操作,就好像一切都很顺利一样。此外,您相信用户不会提供伪造的文件名,并使用用户提供的文件名作为上传安全性的基础。只需将nastyvirus.exe重命名为goodsong.mp3,就可以伪造该文件名,允许他们上传任何想要的内容。

if ($_FILES['frmFile']['error'] !== UPLOAD_ERR_OK) {
   die("Upload failed with error code " . $_FILES['frmFile']['error']);
}
$finfo = new finfo(FILEINFO_MIME_TYPE);
if($finfo->file($_FILES['frmFile']['tmp_name']) != 'audio/mpeg') {
    die("Invalid file type uploaded");
}
etc...

您需要设置以下值来增加文件上传大小

file_uploadsile_uploads
upload_max_filesize
max_input_time
memory_limit
max_execution_time
post_max_size

干杯