Ir para conteúdo
Fórum Script Brasil
  • 0

Dificuldades com processo batch de leitura de arquivos


gustavomelo.vix

Pergunta

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:

<?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!

 

Editado por gustavomelo.vix
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...