【问题标题】:mp3 song upload code in php is not working wellphp中的mp3歌曲上传代码无法正常工作
【发布时间】:2012-09-02 22:56:41
【问题描述】:

我有一个网站,在这里我需要实现一个 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歌曲的好代码

提前致谢

【问题讨论】:

  • no size 不大。我已经下载了一个最小的文件

标签: php mp3


【解决方案1】:

根据PHP docs,上传错误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...

【讨论】:

  • +1 用于使用 finfo() 检查 mime 类型。您不应信任 $_FILES 中的 ['type'],因为它可能会被客户端出于恶意目的进行欺骗。
【解决方案2】:

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

file_uploadsile_uploads
upload_max_filesize
max_input_time
memory_limit
max_execution_time
post_max_size

干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多