public function upload()
{
$ids=I('post.ids');
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 31457280 ;// 设置附件上传大小
$upload->exts = array('silk');// 设置附件上传类型
$upload->rootPath = './files/'; // 设置附件上传根目录
$upload->savePath = ''; // 设置附件上传(子)目录
$upload->saveName = time().mt_rand(100000,999999); //文件名称创建时间戳+随机数
$upload->autoSub = false; //自动使用子目录保存上传文件 默认为true
$info = $upload->upload();
if ($info) {
$arr=explode('.',$info['file']['savename']);
$this->SilkToWav($arr[0]);
@unlink("./files/".$info['file']['savename']);
$res=M('ucard')->where(['id'=>$ids])->find();
if($res['url']){
$dd='./files/'.$res['url'];
if (file_exists($dd)) {
@unlink($dd);
}
}
$resg = M('ucard')->where(['id' => $ids])->save(['url' =>$arr[0].'.wav']);
if ($resg) {
echo 1;
} else {
echo 2;
}
} else {
echo 2;
}
}
public function SilkToWav($silkfile)
{///www/web/default/public_html/minimbheka/App/Api
// define('IA_ROOT', str_replace("\\", '/', dirname(dirname(__FILE__))));
$MPATH = "/www/web/default/public_html/minimbheka/";
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$cmd = $MPATH . "silk/win/silk_v3_decoder.exe " . $MPATH . "files/{$silkfile}.silk " . $MPATH . "files/{$silkfile}.pcm";
exec($cmd);
$cmd = $MPATH . "silk/win/ffmpeg.exe -y -f s16le -ar 24000 -ac 1 -i " . $MPATH . "files/{$silkfile}.pcm -f wav -ar 16000 -b:a 16 -ac 1 " . $MPATH . "files/{$silkfile}.wav";
exec($cmd, $out);
@unlink($MPATH."files/{$silkfile}.pcm");
} else {
$cmd = $MPATH."converter.sh files/{$silkfile}.silk wav";
exec($cmd, $out);
}
if (!file_exists($MPATH."files/{$silkfile}.wav"))
file_put_contents($MPATH."files/{$silkfile}.wav", $cmd . "\n" . json_encode($out));
}