[RESOLVIDO] - ERRO: feof() expects parameter 1 to be resource, boolean given

Meus Caros,

Simplesmente do nada minha aplicação começou a apresentar esse mensagem de alerta quando está lendo um arquivo CSV, e eu simplesmente não entendo o por que, alguém pode me ajudar, o sistema parou completamente por conta disso e meu pescoço está a premio. :frowning:

O trecho de código que isto está ocorrendo é esse…

while (!feof($fp)) {
	
	$linha = fgets($fp);
	
	$colunas = explode(';', $linha);
	
    $i=1;
    ........

Clarck,

Que outros detalhes ?

Informei o trecho de código e o erro que está ocorrendo, o que mais faltou eu informar ?

O CSV está sendo alimentado na variável?

Clarck,

O usuário anexa um arquivo CSV e a aplicação lê esse arquivo e processa o envio de mensagens com base nele, pelo que estou entendendo esse mensagem de erro que descrevi no cabeçalho do tópico ocorre em um loop infinito por que aparentemente o arquivo não foi de fato aberto e jogado para a variável fp, mas eu não entendo por que isso pode ter ocorrido de uma hora para outra, já que tudo está ok, terá sido alguma atualização do SC que ferrou isso ?

Eis o código desde o carregamento do arquivo…

// Abrindo o Arquivo
$arqcsv = {Arquivo};
$fp = fopen($arqcsv,'r');

$numcels = array();

$reg=0;
// Processando arquivo
while (!feof($fp)) {
	
	$linha = fgets($fp);
	
   .....

Tudo bem, podemos colocar isso, mas o fato é o por que diabos o arquivo não está mais sendo aberto como antes estava ?

Clark,

Desde maio isso estava funcionando desta forma, o arquivo era carregado no campo tipo ARQUIVO, e o sistema consegui ler sem problemas, agora não consegue mais ? Então houve alguma alteração no SC que modificou como isso funcionava. :frowning:

tu atualizo o SC??
ta usando um campo do tipo DOCUMENTO nome arquivo??

si SIM tem grandes posibilidades de ser mais um problema do SC

Willian,

Sim estou usando esse campo mesmo.

Tenho impressão que de fato é uma pisada na bola da versão 8.1.005, inclusive na 8.1.006 se toca no assunto desse tipo de campo, mas eu atualizei também e mesmo não resolveu.

Vi no forum que existem outros bugs relacionados a isso, com outros tipos de campos também.

Mandei um email para NM, espero que eles resolvam isso urgentemente, senão eu vou me ferrar legal com esse cliente que é chato ao extremo. :frowning:

Qual seria uma mudança paliativa até que a nossa querida NM resolva o bug ?

si tu souber PHP y um pouco de HTML
fazer um formulario simplizinho pra capturar arquivos, enviar via POST pasar para uma blank em caso de utilizar consultas SQL y boa…

Pode fazer tudo numa blank só

algums links de apoio

http://blog.thiagobelem.net/upload-de-arquivos-como-tudo-funciona/

http://www.webmaster.pt/upload-arquivos-php-743.html

Em video

https://www.youtube.com/watch?v=_6e8cgbumKc

Seria a volta mais repida para se contornar isso no momento Ronaldo

Clarck,

Pensando… na hora que o usuário cadastrar a mensagem, ele anexa o arquivo ao campo DOCUMENTO, e incluir um registro no banco de dados, neste momento, na hora de salvar o registro no banco, seria possível eu enviar o arquivo para uma pasta específica que quando eu fosse processar o ENVIO propriamente dito, eu lê-se o arquivo que foi enviado, e depois de devidamente processado esse arquivo seria excluido para não ficar ocupando espaço desnecessariamente no servidor.

Me parece que é possível, não sei ao certo como fazer isso, tem que se estudar, acho que inclusive seria uma medida não paliativa, mas sim até melhor e mais segura do que esse hoje existente.

pela mensagem, o $fp é um boolean e não um handle de arquivo

Flavio,

Sim, a variável $fp retorna um booleano FALSE caso o arquivo não for aberto, caso contrário retorna o handle.

Não foi uma pergunta, só falando que o arquivo não foi aberto, não tem um handle no feof

Apenas para deixar registrado que o bug em questão estava sendo ocasionado simplesmente pelo fato de que depois da atualização 8.1.005 o SC não aceita mais o nome de arquivo para upload com espaços em branco ou caracteres especiais, apenas isso. Não sei se a NM vai corrigir, mas se não for era bom documentar para que outros não penem como eu para descobrir o por que as coisas param de funcionar sem mais nem menos.