public static function uploadMultiplo($tipo_midia, $idRegistro, $dados = null) { if (!is_null($dados)) { $dados = (object) $dados; } $file = Request::file('imagens'); $nomeTipo = TipoMidia::findOrFail($tipo_midia)->descricao; $midia = Midia::where('id_registro_tabela', $idRegistro)->where('id_tipo_midia', $tipo_midia)->first(); if (!empty($midia)) { foreach ($file as $img) { $nomeOriginal = $img->getClientOriginalName(); // PEGANDO O NOME ORIGINAL DO ARQUIVO A SER UPADO $novoNome = md5(uniqid($nomeOriginal)) . '.' . $img->getClientOriginalExtension(); // MONTANDO O NOVO NOME COM MD5 + IDUNICO BASEADO NO NOME ORIGINAL E CONCATENANDO COM A EXTENÇÃO DO ARQUIVO $img->move('uploads/' . $nomeTipo, $novoNome); // MOVENDO O ARQUIVO PARA A PASTA UPLOADS/"TIPO DA MIDIA" $multi = new Multimidia(); // GRAVANDO NA TABELA MULTIMIDIA $multi->id_midia = $midia->id_midia; $multi->imagem = $novoNome; if (!empty($dados)) { $multi->ordem = $dados->multimicia_ordem; $multi->video = $dados->multimicia_video; } $multi->save(); } } else { // gravando dados na tabela midia $midia = new Midia(); $midia->id_tipo_midia = $tipo_midia; $midia->id_registro_tabela = $idRegistro; $midia->descricao = $nomeTipo . ' criado automaticamente'; if (!empty($dados)) { $midia->ordem = $dados->midia_ordem; } $midia->save(); foreach ($file as $img) { $nomeOriginal = $img->getClientOriginalName(); // PEGANDO O NOME ORIGINAL DO ARQUIVO A SER UPADO $novoNome = md5(uniqid($nomeOriginal)) . '.' . $img->getClientOriginalExtension(); // MONTANDO O NOVO NOME COM MD5 + IDUNICO BASEADO NO NOME ORIGINAL E CONCATENANDO COM A EXTENÇÃO DO ARQUIVO $img->move('uploads/' . $nomeTipo, $novoNome); // MOVENDO O ARQUIVO PARA A PASTA UPLOADS/"TIPO DA MIDIA" $multi = new Multimidia(); // GRAVANDO NA TABELA MULTIMIDIA $multi->id_midia = $midia->id_midia; $multi->imagem = $novoNome; if (!empty($dados)) { $multi->ordem = $dados->multimicia_ordem; $multi->video = $dados->multimicia_video; } $multi->save(); } } }
public function actionUpload() { $model = new UploadForm(); if (Yii::$app->request->isPost) { $parametros = Yii::$app->request->post(); if ($audiencia = Audiencia::findOne($parametros['idAudiencia'])) { if (!is_dir(Yii::getAlias('@upload') . '/' . $audiencia->id)) { mkdir(Yii::getAlias('@upload') . '/' . $audiencia->id, 0777); } $nomeArquivo = md5(microtime(true)); $caminhoCompleto = Yii::getAlias('@upload') . '/' . $audiencia->id . '/' . $nomeArquivo; $model->audio = UploadedFile::getInstanceByName('audio'); $model->video = UploadedFile::getInstanceByName('video'); $model->audio->saveAs($caminhoCompleto . '.wav'); $model->video->saveAs($caminhoCompleto . '.webm'); //Tranformo o arquivo em um WEBM com audio $cmd = ' -i ' . $caminhoCompleto . '.wav' . ' -i ' . $caminhoCompleto . '.webm' . ' -vcodec copy ' . $caminhoCompleto . '-m.webm'; exec(Yii::getAlias('@ffmpeg') . ' ' . $cmd . ' 2>&1', $out, $ret); $arquivoVideo = new Multimidia(); $arquivoVideo->dsc_arquivo = $nomeArquivo . '-m.webm'; $arquivoVideo->id_audiencia = $parametros['idAudiencia']; $arquivoVideo->dsc_caminho_completo = $caminhoCompleto . '-m.webm'; $arquivoVideo->save(); $filaEnvio = new FilaEnvio(); $filaEnvio->id_registro = $arquivoVideo->id; $filaEnvio->tabela = $arquivoVideo->tableName(); $filaEnvio->save(); //Efetuo a exclusao dos demais arquivos separados unlink($caminhoCompleto . '.wav'); unlink($caminhoCompleto . '.webm'); } } }