Jump to content
Fórum Script Brasil
  • 0

Dificuldades com processo batch de leitura de arquivos


Question

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!

 

Edited by gustavomelo.vix
Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148978
    • Total Posts
      645048
×
×
  • Create New...