1.html代码
<div class="layui-upload" >
<div>
<label class="col-xs-12" for="{$form[type].name}" style="margin-left: 13px;">{$form[type].title|htmlspecialchars}</label>
<button type="button" class="layui-btn uploadAudio" id="upload_list_{$form[type].name}" style="margin-bottom: 11px;background-color:#00b7ee;margin-left: 31px;">
<i class="layui-icon"></i>上传音频</button>
<div class="layui-upload-list">
<input type="hidden" name="{$form[type].name}" data-type="audio" data-size="{$form[type]['size']|default=0}" id="{$form[type].name}" value="{$form[type].value|default=''}">
<p id="demoText"></p>
</div>
</div>
<div>
<audio class="tag_audio" controls="controls" src="{$form[type].value|default=''}" id="src_{$form[type].name}" style="margin-bottom: 11px;width: 300px;height: 59px;margin-left: 28px;"></audio>
</div>
</div>
<input type="hidden" class="opt" value="{$form[type].name}">
2.js代码
$(".tag_audio").hide()
layui.use('upload', function(){
var $ = layui.jquery,
upload = layui.upload;
var li=[]
,input_file = $('.layui-upload-list').find('input')
,size = input_file.data('size');
for (var j=0; j<$(".opt").length;j++ ){
li.push($(".opt").eq(j).val());
}
for (var i=0;i<li.length;i++){
console.log(input_file.data('type'))
upload.render({
elem: '#upload_list_'+li[i]
,url: "/admin.php/admin/ajax/uploadAudio"
,data:{i:i}
,accept: 'audio' //音频
,size:size
,done: function(res){
if(res.code > 0){
return layer.msg('上传失败');
}
//上传成功
if(res.code == 0){
var fileName=res.data.src;
$("#"+li[res.i]).val(fileName)
$("#src_"+li[res.i]).attr("src",fileName);
$("#src_"+li[res.i]).show()
$("#src_"+li[i]).load();
// $.toast("音频上传成功");
}
}
})
}
});
php代码
//上传音频
public function uploadAudio(Request $request)
{
$i = input('post.i');
//处理上传
$file=$request->file("file");
if ($file){
$info = $file->move($_SERVER['DOCUMENT_ROOT'].'/uploads/audio');
if ($info){
// 成功上传后 获取上传信息
$url=$info->getSaveName();
$data=["src"=>absolute_path().'/uploads/audio/'.$url];
$msg= [
"code"=>0,
"msg"=>'ok',
"data"=>$data,
'i'=>$i
];
exit(json_encode($msg));
}else{
// 上传失败获取错误信息
return $this->error($file->getError());
}
}
}