PHP开发之上传音频

今天给大家分享一个比较简单易懂的技术,就是音频上传,原理和文件上传一样,不要想的太复杂,希望对你有所帮助;

在给大家分享之前,这里推荐下我自己建的PHP开发-VIP资料出售平台 :638965404,不管你是小白还是大牛,我都挺欢迎,不定期分享干货,包括2017最新的PHP企业案例学习资料和零基础入门教程,以及面试宝典,欢迎初学和进阶中的小伙伴,大家一起交流学习,共同进步。

PHP开发之上传音频_第1张图片

再次说明一下,上传音频和上传图片的原理是一样的,就是最普通的写入文件就行了,别想得太复杂,不多说了,直接上代码:

//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开发之上传音频)