济南IT培训 > 达内新闻
PHP开发中怎么上传音频?
- 发布:达内
- 来源:互联网
- 时间:2017-12-11 09:57
今天达内给大家分享一个比较简单易懂的技术,就是音频上传,原理和文件上传一样,不要想的太复杂,希望对你有所帮助;再次说明一下,上传音频和上传图片的原理是一样的,就是最普通的写入文件就行了,别想得太复杂,不多说了,直接上代码:
<?php
//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开发中怎么上传音频?
- 发布:达内
- 来源:互联网
- 时间:2017-12-11 09:57
今天达内给大家分享一个比较简单易懂的技术,就是音频上传,原理和文件上传一样,不要想的太复杂,希望对你有所帮助;再次说明一下,上传音频和上传图片的原理是一样的,就是最普通的写入文件就行了,别想得太复杂,不多说了,直接上代码:
<?php
//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;
}
}
?>
分享到这里就结束了,代码已经给大家写好,注释好.本篇文章是由达内为您呈现,希望给您带来更多更好的文章,喜欢的朋友们可以加微信公众号.
更多达内相关咨询,请扫描下方二维码

最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 厦门
- 哈尔滨
- 济南
- 福州
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 大连
- 长沙
- 昆明
- 温州
- 太原
- 南昌
- 无锡
- 石家庄
- 南宁
- 中山
- 兰州
- 佛山
- 珠海
- 宁波
- 贵阳
- 保定
- 呼和浩特
- 东莞
- 洛阳
- 潍坊
- 烟台
- 运城