Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

josuel

[Resolvido] Error ao tentar abrir arquivo com file()

Recommended Posts

Olá, Bom dia a todos!

tenho uma pagina que fica encarregada de receber o caminho do arquivo através de um botão file o formulario é do tipo post. Essa pagina utiliza a função file() para ler o arquivo.

No meu servidor de teste local funciona muito bem, só que quando coloco essa pagina no servidor on-line, ela mostra o seguinte erro:

 

Warning: file(C:\wamp\www\prosabervirtual\frente\adm\bl_adm\ret000583.txt) [function.file]: failed to open stream: No such file or directory in /home/prosabervirtual/public_html/adm/bl_adm/processar_ret.php on line 15

 

Sei que o error acima que dizer que a função falhou, só não sei o porque dessa falha.

 

Se algum souber o que está causando essa falha, desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se algum souber o que está causando essa falha, desde já agradeço!

 

Ué, é só ler a mensagem de erro:

 

No such file or directory

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais o que devo fazer, você pode me mostrar o caminho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o certo antes de abrir ou ler o arquivo eh valida-lo: o arquivo existe? abra-o : descubra o pq;

 

Certo, como disse antes estou abrindo esse arquivo através de um form ou seja esse arquivo existe no meu computador, procuro ele com o botão file do form e armazeno o camiho do arquivo em uma variavél depois peço que abra e leia o arquivo com a função file. Será que estou fazendo errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

No meu servidor de teste local funciona muito bem, só que quando coloco essa pagina no servidor on-line, ela mostra o seguinte erro:

 

Warning: file(C:\wamp\www\prosabervirtual\frente\adm\bl_adm\ret000583.txt) [function.file]: failed to open stream: No such file or directory in /home/prosabervirtual/public_html/adm/bl_adm/processar_ret.php on line 15

 

 

Coisa mais fácil...

 

Veja que ele está tentando abrir um arquivo cujo o caminho é "C:\wamp\www\prosabervirtual\frente\adm\bl_adm\ret000583.txt" é impossível você abrir esse arquivo no seu servidor on-line né??????

 

Corrija o caminho do arquivo q está na função file()... tente colocar o caminho relativo se você não sabe o caminho absoluto.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como faço para alterar o tipo de caminho do arquivo?

Lembrando que pego o caminho do arquivo através de um form!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A resposta para o teu problema é esta:

O PHP é server-side, tente fazer uma cópia deste arquivo para seu servidor, ai sim altere-o como quiser. (poste o codigo também)

 

Para isso use a função move_uploaded_file() ou a copy()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aaaaahhhhh...

 

é, se o arquivo não estiver no servidor, não adianta...

 

Você precisa dar um upload primeiro nesse arquivo para ler depois...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o upload do arquivo!

Agora como posso fazer para pegar sempre o caminho do ultimo arquivo mandado para o servidor?

 

Segue um resumo do código abaixo:

 

<?php 
ini_set('display_errors', 1); error_reporting(E_ALL);

//Verifico se o arquivo veio pelo método POST a partir de um form
if (is_uploaded_file($_FILES["arquivo"]["tmp_name"])) {
       //Verifico se o tamanho do arquivo excede o limite permitido
	if ($_FILES["arquivo"]["size"] > 2100000) {
           echo "Tamanho excedido";
       }
//Verifico se existe algum erro
       else if ($_FILES["arquivo"]["error"] != 0) {
           echo $_FILES["arquivo"]["error"];
       }
else if (move_uploaded_file($_FILES["arquivo"]["tmp_name"], "seg/".$_FILES["arquivo"]["name"])){
	 echo "<script>alert('Arquivo enviado com sucesso!!!');</script>";
  }
  }else {

$lines = file("seg/".$_FILES["arquivo"]["name"]);// tentei desta maneira mais não deu certo

$t = count($lines);

for ($i=0;$i<$t;$i+=2){ 
$n_nume = substr( $lines[$i] , 38 , 18);

}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o seguinte código no início da sua página. Vai exibir todos os dados referentes ao arquivo enviado. Daí você vê qual deles você vai querer.

 

echo '<pre>';
print_r($_FILES);

Depois que estiver funcionando você tira este código.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se o arquivo foi uploaded com sucesso, deveria ler o arquivo...

 

Faz uma verificação antes de mandar ler assim:

 

if(is_file("seg/".$_FILES["arquivo"]["name"])) {
 [...] // seu código ler abrir o arquivo...
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código que postei acima está funcionando o motivo do erro foi um "else" a mais no código!

 

Segue o código correto:


<?php 
ini_set('display_errors', 1); error_reporting(E_ALL);

//Verifico se o arquivo veio pelo método POST a partir de um form
if (is_uploaded_file($_FILES["arquivo"]["tmp_name"])) {
       //Verifico se o tamanho do arquivo excede o limite permitido
	if ($_FILES["arquivo"]["size"] > 2100000) {
           echo "Tamanho excedido";
       }
//Verifico se existe algum erro
       else if ($_FILES["arquivo"]["error"] != 0) {
           echo $_FILES["arquivo"]["error"];
       }
else if (move_uploaded_file($_FILES["arquivo"]["tmp_name"], "seg/".$_FILES["arquivo"]["name"])){
	 echo "<script>alert('Arquivo enviado com sucesso!!!');</script>";
  }
// Retirei o else que estava aqui

$lines = file("..seg/".$_FILES["arquivo"]["name"]);

$t = count($lines);

for ($i=0;$i<$t;$i+=2){ 
$n_nume = substr( $lines[$i] , 38 , 18);

}
}
?>

 

Muito Obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.