php上传音频

作者: 王中阳 | 来源:发表于2017-10-09 19:53 被阅读191次
    • 首先说明一下,上传音频和上传图片一样,就是最普通的写入文件就行了。别想复杂了。
    //controller层调用
    $audioInfo = $model->uploadAudio(); 
    
    /**
     * model层读写数据
     * 音频上传方法
     * @param $_FILES 上传的参数
     */
    public function uploadAudio()
    {
        $audioInfo = array(
            'flag' => false,
            'code' => 1,
            'msg' => '没有接收到数据流',
            'data' => array(),
        );
        //二进制数据流 下面这个会显示全部的参数
        $data = file_get_contents('php://input') ? file_get_contents('php://input') : gzuncompress($GLOBALS ['HTTP_RAW_POST_DATA']);
        $data = base64_decode($data);
        //递归创建目录,移动音频到指定位置
        $time = time();
        $month = date('Ym', $time);
        $today = date('j', $time);
        //获取.最后一个的位置
        $ext = "mp3";
        $audioName = "fromapp";
        $fileName = time() . $audioName . rand(1, 100000);
        $fileName = md5($fileName);
        $dirPath = self::Audio_PATH . $month . '/' . $today;
        $filePath = $dirPath . '/' . $fileName . '.' . $ext;
        Libs_Download::recurDirs($dirPath, FALSE);
        if (!empty($data)) {
            //创建并写入数据流,然后保存文件
            if (@$fp = fopen($filePath, 'w+')) {
                fwrite($fp, $data);
                fclose($fp);
                $size = filesize($filePath);
                $audioInfo['data'] = array(
                    'size' => $size,
                    'filename' => $fileName,
                    'ext' => 'mp3',
                    'dateline' => date('Y-m-d H:i:s', $time),
                );
                $audioInfo['flag'] = true;
                $audioInfo['code'] = 0;
                $audioInfo['msg'] = '数据流生成音频成功';
                return $audioInfo;
            }
            $audioInfo['code'] = 2;
            $audioInfo['msg'] = '数据流写入文件失败';
            return $audioInfo;
        } else {
            //没有接收到数据流
            return $audioInfo;
        }
    }
    

    相关文章

      网友评论

      本文标题:php上传音频

      本文链接:https://www.haomeiwen.com/subject/egnpyxtx.html