Estou trabalhando em um processo que receber arquivos via ftp e carrega em banco, esse processo foi configurado como uma tarefa cron que será executada de tempos em tempos. Quando desenvolvi em minha máquina funcionou perfeitamente, lê uma pasta local, lista os arquivos e carrega em banco.
Quando subi para o servidor (cpanel), começaram meus problemas. Criei uma pasta batch em baixo de "/home/mysite", coloquei aqui para não ficar visível para usuários do site. Depois coloquei os arquivos na pasta public_ftp/arquivos/.
Quando vou executar, meu algoritmo fala que não há arquivos na pasta, mas os arquivos estão lá.... Segue trecho do código que seleciona os arquivos a serem processados:
<?php
class ArquivosUtil {
private $origemArquivosDir = "/home/mysite/public_ftp/incoming/arquivos";
private $destinoArquivosDir = "/home/mysite/batch/processados";
private $log;
private $trataException;
function __construct($log, $trataException) {
$this->log = $log;
$this->trataException = $trataException;
}
/**
* Lê o diretório de origem, seleciona somente o que é tipo arquivo
* Verifica se o arquivo existe (redundante mas necessário)
* Verifica se o arquiv está em uso
* @return array - Lista de arquivos válidos
*/
function selecionaArquivos() {
// Guarda a primeira leitura na pasta do ftp
$listaDiretorioOrigem = scandir ( $this->origemArquivosDir );
// Array armazendo somente arquivos da leitura do diretório
$listaArquivos = array ();
// Percorre o array que leu o diretório removendo o que não é arquivo e adicionando em novo array
foreach ( $listaDiretorioOrigem as $file ) {
$verifica = $this->origemArquivosDir . "\\" . $file;
// Caso seja arquivo tenta adicionar ao array
if (($file != ".") && ($file != "..") && (!is_dir ( $verifica ))) {
// Confirma a existência do arquivo
if (file_exists ( $verifica )) {
$this->log->gravaLog ( $file . " -> ADICIONADO PARA PROCESSAMENTO" );
//verificaArquivoEmUso ( $verifica );
array_push ( $listaArquivos, $verifica );
} else
$this->log->gravaLog ( $file . "-> não existe." );
} else
$this->log->gravaLog ( $file . "-> desconsiderado por não ser reconhecido como arquivo." );
}
return $listaArquivos;
}
O processo é o seguinte, a pasta de ftp é lida e carregada no vetor $listaDiretorioOrigem, depois esse vetor é percorrido para avaliar o que é arquivo e o que não é. O que for arquivo será carregado no vetor $listaArquivos para ser utilizado posteriormente.
Quando eu executo a linha "if(file_exists($verifica))" sempre retorna false. Já tentei tirar essa linha, pois é uma verificação adicional, mas aí o algoritmo dá pau quando vai utilizar os arquivos.
Já tentei rever as permissões dos arquivos (todas setadas) e não funcionou.
Tentei colocar os arquivos da pasta ftp na mesma pasta do código, também não deu certo.
Por último, coloquei todo conteúdo (código e arquivos txt) dentro da pasta public_html, e adivinha..... também não funcionou....
Alguém tem alguma dica?? Não sei mais o que fazer!
Pergunta
gustavomelo.vix
Pessoal, beleza?
Estou trabalhando em um processo que receber arquivos via ftp e carrega em banco, esse processo foi configurado como uma tarefa cron que será executada de tempos em tempos. Quando desenvolvi em minha máquina funcionou perfeitamente, lê uma pasta local, lista os arquivos e carrega em banco.
Quando subi para o servidor (cpanel), começaram meus problemas. Criei uma pasta batch em baixo de "/home/mysite", coloquei aqui para não ficar visível para usuários do site. Depois coloquei os arquivos na pasta public_ftp/arquivos/.
Quando vou executar, meu algoritmo fala que não há arquivos na pasta, mas os arquivos estão lá.... Segue trecho do código que seleciona os arquivos a serem processados:
O processo é o seguinte, a pasta de ftp é lida e carregada no vetor $listaDiretorioOrigem, depois esse vetor é percorrido para avaliar o que é arquivo e o que não é. O que for arquivo será carregado no vetor $listaArquivos para ser utilizado posteriormente.
Quando eu executo a linha "if(file_exists($verifica))" sempre retorna false. Já tentei tirar essa linha, pois é uma verificação adicional, mas aí o algoritmo dá pau quando vai utilizar os arquivos.
Já tentei rever as permissões dos arquivos (todas setadas) e não funcionou.
Tentei colocar os arquivos da pasta ftp na mesma pasta do código, também não deu certo.
Por último, coloquei todo conteúdo (código e arquivos txt) dentro da pasta public_html, e adivinha..... também não funcionou....
Alguém tem alguma dica?? Não sei mais o que fazer!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.