1
Dear, I have a doubt, I have a script in php that already creates a CSV file for the machine itself. I need this CSV to be sent to an FTP automatically daily, however I am not able to think of the logic of joining the two scripts, given that it is PHP and would have to be done through task scheduling windows (maybe). Follow code to generate CSV
<?php
require_once ('dbacess.php');
require_once('log2.php');
// output headers so that the file is downloaded rather than displayed
date_default_timezone_set('America/Sao_Paulo');
session_start();
$data = date('d-m-Y H:i:s');
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename='.$data.'.csv');
// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');
// output the column headings
// fetch the data
if (!isset($_SESSION['campanha'])) {
$campanha = 1;
$text = "Campanha invalida!";
logs($text,"warning");
}else{
$campanha = $_SESSION['campanha'];
}
$rows = sprintf("select * from ivr_contatos, ivr_campanha,ivr_business where ivr_campanha.id = '%s' and ivr_contatos.campanha = '%s' and ivr_business.idvisita = ivr_contatos.codigo and ivr_contatos.status = 0 and tentativas >= qtdtentativas",
$campanha,$campanha);
$linha = Populator::ConsultaDB($rows);
// loop over the rows, outputting them
fputcsv($output,array("CHAMADO","ID VISITA","NOME","TELEFONE","TENTATIVA","DATA"),';');
while ($resultado = pg_fetch_array($linha) ) {
$chamado = $resultado['numerochamado'];
$visita = $resultado['idvisita'];
$nome = $resultado['nome'];
$telefone = $resultado['telefone'];
$tentativa = $resultado['tentativas'];
$lastAttempt = $resultado['atualizado'];
$dataconvertida = date('d/m/Y H:i:s', strtotime($lastAttempt));
$codigo = $resultado['codigo'];
fputcsv($output,array($chamado,$visita,$nome,$telefone,$tentativa,$dataconvertida),';');
}
?>
Code to access FTP:
<?php
// Configura o tempo limite para ilimitado
set_time_limit(0);
/*-----------------------------------------------------------------------------*
* Parte 1: Configurações do Envio de arquivos via FTP com PHP
/*----------------------------------------------------------------------------*/
// IP do Servidor FTP
$servidor_ftp = '127.0.0.0';
// Usuário e senha para o servidor FTP
$usuario_ftp = 'ftp_tentativas_qualidade';
$senha_ftp = 'teste';
// Extensões de arquivos permitidas
$extensoes_autorizadas = array( '.exe', '.jpg', '.mp4', '.mkv', '.txt','.csv' );
// Caminho da pasta FTP
$caminho = 'arquivos/';
$limitar_tamanho = 0;
$sobrescrever = 0;
/*-----------------------------------------------------------------------------*
* Parte 2: Configurações do arquivo
/*----------------------------------------------------------------------------*/
// Verifica se o arquivo não foi enviado. Se não; termina o script.
if ( ! isset( $_FILES['arquivo'] ) ) {
exit('Nenhum arquivo enviado!');
}
// Aqui o arquivo foi enviado e vamos configurar suas variáveis
$arquivo = $_FILES['arquivo'];
// Nome do arquivo enviado
$nome_arquivo = $arquivo['name'];
// Tamanho do arquivo enviado
$tamanho_arquivo = $arquivo['size'];
// Nome do arquivo temporário
$arquivo_temp = $arquivo['tmp_name'];
// Extensão do arquivo enviado
$extensao_arquivo = strrchr( $nome_arquivo, '.' );
// O destino para qual o arquivo será enviado
$destino = $caminho . $nome_arquivo;
/*-----------------------------------------------------------------------------*
* Parte 3: Verificações do arquivo enviado
/*----------------------------------------------------------------------------*/
/*
Se a variável $sobrescrever não estiver configurada, assumimos que não podemos
sobrescrever o arquivo. Então verificamos se o arquivo existe. Se existir; minamos aqui.
*/
if ( !$sobrescrever && file_exists( $destino ) ) {
exit('Arquivo já existe.');
}
/*
Se a variável $limitar_tamanho tiver valor e o tamanho do arquivo enviado for
maior do que o tamanho limite, terminado aqui.
*/
if ( $limitar_tamanho && $limitar_tamanho < $tamanho_arquivo ) {
exit('Arquivo muito grande.');
}
/*
Se as $extensoes_autorizadas não estiverem vazias e a extensão do arquivo não
estiver entre as extensões autorizadas, terminamos aqui.
*/
if ( ! empty( $extensoes_autorizadas ) && ! in_array( $extensao_arquivo, $extensoes_autorizadas ) ) {
exit('Tipo de arquivo não permitido.');
}
/*-----------------------------------------------------------------------------*
* Parte 4: Conexão FTP
/*----------------------------------------------------------------------------*/
// Realiza a conexão
$conexao_ftp = ftp_connect( $servidor_ftp );
// Tenta fazer login
$login_ftp = @ftp_login( $conexao_ftp, $usuario_ftp, $senha_ftp );
// Se não conseguir fazer login, termina aqui
if ( !$login_ftp ) {
exit('Usuário ou senha FTP incorretos.');
}
// Envia o arquivo
if ( @ftp_put( $conexao_ftp, $destino, $arquivo_temp, FTP_BINARY ) ) {
// Se for enviado, mostra essa mensagem
echo 'Arquivo enviado com sucesso!';
} else {
// Se não for enviado, mostra essa mensagem
echo 'Erro ao enviar arquivo!';
}
// Fecha a conexão FTP
ftp_close( $conexao_ftp );