$v) {
/*
* Testa se as configurações para acessar o sistema por ssh estão corretas.
*/
if (!vai_comando('ls /', $dbcon)) {
GeraExcept('Não foi possível realizar a operação, verifique as configurações padrão!');
}
/*
* Verifica se o arquivo esta disponível no servidor.
*/
if (!is_uploaded_file($_FILES['arquivo']['tmp_name'][$key])) {
GeraExcept('Erro ao copiar arquivo!');
}
/*
* Remove caracteres inválidos do nome do arquivo e pega a extensão.
*/
$nomeOrig = $_FILES['arquivo']['name'][$key];
$arquivo_tratado = strtolower(LimpaString(RemovePontoExt($nomeOrig)));
$arq = split('\.', $arquivo_tratado);
$extensao = $arq[1];
/*
* Verifica o tamanho do nome do arquivo de som.
*/
if (strlen($arquivo_tratado) > 35) {
GeraExcept("Nome de arquivo muito grande");
}
/*
* Verifica se ja foi feito o upload do arquivo de som no servidor.
*/
if (RegistroInc($dbcon, "select count(arq_nome_sistema) from pbx_arquivo_som where arq_nome_sistema = '{$arq[0]}'")) {
GeraExcept('Erro: Este arquivo de som ja existe!');
}
/*
* Verifica se o tipo do arquivo é válido.
*/
//$ext = (($extensao == 'mp3')or($extensao == 'wav')or($extensao == 'alaw')or($extensao == 'ulaw')or($extensao == 'gsm'));
if (strtolower($extensao) != 'mp3') {
GeraExcept("Formato do arquivo: \"$nomeOrig\" é inválido!");
}
/*
* Copia o arquivo para o diretorio de som
*/
if (!copy($_FILES['arquivo']['tmp_name'][$key], $path_som . $arquivo_tratado)) {
GeraExcept("Não foi possível mover o arquivo: \"$nomeOrig\" para o diretório de som!");
}
/*
* Converte arquivos mp3 para ulaw.
*/
$arqOrigem = $path_som . $arquivo_tratado;
$arqDestino = $path_som . $arq[0] . ".ulaw";
if ($extensao == 'mp3') {
$comando = "ffmpeg -i $arqOrigem -ar 8000 -ac 1 -ab 64 -f mulaw $arqDestino";
vai_comando($comando, $dbcon);
if (!file_exists($arqDestino)) {
GeraExcept("Erro ao converter o arquivo: \"$nomeOrig\"!");
}
}
/*
* Move o arquivo mp3 para possibilitar a escuta do mesmo.
*/
$nomeArq = $path_som . $arquivo_tratado;
if ($extensao == 'mp3') {
$mvFileSom = $path_som . GetDirArqSom($dbcon) . $arquivo_tratado;
$comando = "mv $nomeArq $mvFileSom";
vai_comando($comando, $dbcon);
if (!file_exists($mvFileSom)) {
GeraExcept("Erro ao mover o arquivo: \"$nomeOrig\"!");
}
}
/*
* Insere o arquivo no banco de dados da aplicação.
*/
$login = QuotedStr(GetLogin());
$md5 = QuotedStr(md5_file($mvFileSom));
$nome = IsNull(basename($nomeOrig, ".mp3"), '', 1);
$nomeSistema = IsNull($arq[0], '', 1);
$desc = IsNull($_POST['arq_descricao'], $arq[0], 1);
$tamOrig = IsNull(filesize(($extensao == 'mp3') ? $mvFileSom : $arqOrigem), 0, 1);
$tamDest = IsNull(filesize($arqDestino), 0, 1);
$query = "insert into pbx_arquivo_som(arq_nome, arq_nome_sistema, arq_descricao, arq_path_origem, arq_path_destino, arq_orig_tamanho, arq_dest_tamanho, arq_md5, userreg) values(%s,%s,%s,%s,%s,%s,%s,%s,%s);";
$query = sprintf($query, $nome, $nomeSistema, $desc, QuotedStr($mvFileSom), QuotedStr($arqDestino), $tamOrig, $tamDest, $md5, $login);
$result = pg_query($query);
if (!$result) {
unlink($arqOrigem);
unlink($arqDestino);
GeraExcept("Erro ao adicionar o arquivo ao banco de dados!");
}
}
//echo '';
echo "";
} catch (Exception $ex) {
Alert($ex->getMessage(), 1);
}
}
?>