《PHP開發之上傳音頻》要點:
本文介紹了PHP開發之上傳音頻,希望對您有用。如果有疑問,可以聯系我們。
今天給大家分享一個比較簡單易懂的技術,就是音頻上傳,原理和文件上傳一樣,不要想的太復雜,希望對你有所贊助;
在給大家分享之前,這里推薦下我自己建的PHP開發-VIP資料出售平臺 :638965404,不管你是小白還是大牛,我都挺歡迎,不定期分享干貨,包含2017最新的PHP企業案例學習資料和零基礎入門教程,以及面試寶典,歡迎初學和進階中的小伙伴,大家一起交流學習,共同進步.
再次說明一下,上傳音頻和上傳圖片的原理是一樣的,便是最普通的寫入文件就行了,別想得太復雜,不多說了,直接上代碼:
<?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開發之上傳音頻》討論,分享您的想法,維易PHP學院為您提供專業教程。