Ir para conteúdo

Arquivado

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

laurolopes

erro ao usar ftp_put

Recommended Posts

Bom dia a todos.

Estou com um problema.Vou explicar:estou tentando fazer um sistema de envio de arquivos(grandes)via ftp.No sábado após algumas tentativas,estava conseguindo enviar os arquivos,apesar da demora estava enviando arquivos via ftp de até 25Mb normalmente,mas no final da tarde começou a dar um erro que desconheço,e que aliás não encontrei nenhuma referência sobre o mesmo.O erro que está dando é o seguinte:

 

Warning: ftp_put() [function.ftp-put]: No file name in /home/laurolop/public_html/teste/upload.php on line 5

 

Alguém sabe que erro é este!?Espero que alguém possa me ajudar.

Obrigado a todos.

 

P.S - antes que alguém possa perguntar,o limite da minha conta não estava nem na metade(minha conta é de 150Mb e estava ocupando só 35Mb).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos.

Estou com um problema.Vou explicar:estou tentando fazer um sistema de envio de arquivos(grandes)via ftp.No sábado após algumas tentativas,estava conseguindo enviar os arquivos,apesar da demora estava enviando arquivos via ftp de até 25Mb normalmente,mas no final da tarde começou a dar um erro que desconheço,e que aliás não encontrei nenhuma referência sobre o mesmo.O erro que está dando é o seguinte:

 

Warning: ftp_put() [function.ftp-put]: No file name in /home/laurolop/public_html/teste/upload.php on line 5

 

Alguém sabe que erro é este!?Espero que alguém possa me ajudar.

Obrigado a todos.

 

P.S - antes que alguém possa perguntar,o limite da minha conta não estava nem na metade(minha conta é de 150Mb e estava ocupando só 35Mb).

no está encontrando algum diretório.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Programador,acho que estou mto perto da solução,mas ainda alguma coisa esta errada.

É o seguinte,tenho uma pasta "teste" que estão os arquivos php de upload,e na pasta do ftp criei uma outra pasta que receberia os arquivos que tivessem sido upados a pasta "arquivos".O código do php roda normalmente mas qdo acaba, o arquivo que foi upado não foi enviado para a seguinte pasta...porque???O código php é o seguinte:

 

PHP
<?

$conect = ftp_connect("ftp.******","21","3600");

ftp_login($conect,"*****","*****");

 

ftp_put($conect,$file_name,"arquivos",FTP_BINARY);

 

ftp_close($conect);

 

?>

 

Vê se você pode me ajudar.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lauro, você precisa especificar o nome de destino do arquivo.

Alterar para a linha abaixo:

 

PHP
ftp_put($conect, $file_name, "arquivos/$file_name", FTP_BINARY);

 

Você precisa também dar permissão de escrita nesse diretório - chmod 777.

Posta aí o resultado ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson Mello,eu alterei a linha que você disse e não mudou nada,o arquivo é executado sem problema nenhum,mas o arquivo em questão não é enviado. O que será que está acontecendo? Tenho q te lembrar que os arquivos (php e o index)estão em uma pasta,e a pasta para onde serão enviados os arquivos são diferentes...influencia em alguma coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson to com um problema diferente.Alterei pouquinha coisa no código mas continua algo errado...

 

ERRO: Warning: ftp_put() [function.ftp-put]: Prohibited file name: arquivos/ in /home/laurolop/public_html/teste/upload.php on line 5

O upload FTP falhou!

 

CÓDIGO:

<?

$conect = ftp_connect("ftp.laurolopes.com", "21", "3600");

ftp_login($conect,"lauro@laurolopes.com","****");

 

$upload = ftp_put($conect, "arquivos/$file_name" , $file ,FTP_BINARY);

 

// confere o upload do arquivo

if (!$upload) {

echo "O upload FTP falhou!";

} else {

echo "Carregado o arquivo $file no servidor $ftp_server como $destination_file";

}

 

ftp_close($conect);

 

?>

 

Minha dificuldade é na linha 5,onde salva o arquivo...(ftp_put)

Dá uma força aí por favor.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Influencia sim, Lauro, pois o caminho precisa ser informado a partir do script em execução, seja ele de forma absoluta ou relativa.

Experimente alterar a mesma linha para:

 

PHP
ftp_put($conect, $file_name, "../arquivos/$file_name", FTP_BINARY);

 

Poste o resultado ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Influencia sim, Lauro, pois o caminho precisa ser informado a partir do script em execução, seja ele de forma absoluta ou relativa.

Experimente alterar a mesma linha para:

 

PHP
ftp_put($conect, $file_name, "../arquivos/$file_name", FTP_BINARY);

 

Poste o resultado ;)

Eu tive esse problema ontem e essa solução não serviu, nesse caso varia muito de como estão organizadas as pastas do servidor....

 

Tente tb usar assim:

 

 

PHP
ftp_put($conect, $file_name, "/public_html/arquivos/$file_name", FTP_BINARY);

 

é importante deixar a primeira barra antes do caminho.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson e T.P. estranho,já coloquei vários caminhos e continua o mesmo erro...

Tem alguma dica de disposição de pastas?To achando que tem alguma coisa relacionada a isso,pq to revirando tudo e a princípio num tem nada errado.Vou explicar novamente como estão as pastas:Dentro da public_html teno várias pastas e dentre elas estão as pastas lauro e teste,dentro da pasta teste estão os arquivos index.html e upload.php e dentro da pasta lauro tenho a pasta arquivo que foi criada automaticamente quando abri uma conta de ftp...

Tenho alguma coisa errada???

Compartilhar este post


Link para o post
Compartilhar em outros sites

use caminho absoluto.para tornar seu script flexivel utilize a função realpath() e verifique também se o servidor possui alguma constante para o diretorio basepor questões de segurança, os servidores desabilitam o uso de realpath() e disponibilizam uma constante, geralmente usam o nome BASEDIRverifique tabém o sistema operacional do servidor. se for *nix use barra normal se for win use barra invertidauma outra possibilidade de erro pode ser o momento da conexão. troque pra conexão passivadica: crie pontos de depuração em todos os scripts que fizer. Isso ajudará na solução de problemas e correção de bugsnesse caso, antes de excutar ftp_put() use file_exists() para verificar se o arquivo existe.antes de formatar o caminho do arquivo verifique o sistema operacional.existem diversos pontos dentro desse pequeno script. é trabalhoso mas vale a pena.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use caminho absoluto.para tornar seu script flexivel utilize a função realpath() e verifique também se o servidor possui alguma constante para o diretorio basepor questões de segurança, os servidores desabilitam o uso de realpath() e disponibilizam uma constante, geralmente usam o nome BASEDIRverifique tabém o sistema operacional do servidor. se for *nix use barra normal se for win use barra invertidauma outra possibilidade de erro pode ser o momento da conexão. troque pra conexão passiva

Hinom,viajei na sua ajuda irmão.Num to entendendo qual o erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é trabalhoso mas vale a pena.

Com certeza, é o melhor sistema de upload, não precisa se preocupar com safe mod nem nada, além do tamanho do arquivo ser configurado por você.....Ontem mesmo fiz um teste, aqui vamos trabalhar apenas com arquivos entre 200mb e 1gb, upei 1gb e foi beleza.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

é trabalhoso mas vale a pena.

Com certeza, é o melhor sistema de upload, não precisa se preocupar com safe mod nem nada, além do tamanho do arquivo ser configurado por você.....Ontem mesmo fiz um teste, aqui vamos trabalhar apenas com arquivos entre 200mb e 1gb, upei 1gb e foi beleza.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
T.P. teria como você me dar uma força?Ficaria imensamente agradecido...ou me passar onde posso achar sobre esse sistema de upload...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é trabalhoso mas vale a pena.

Com certeza, é o melhor sistema de upload, não precisa se preocupar com safe mod nem nada, além do tamanho do arquivo ser configurado por você.....Ontem mesmo fiz um teste, aqui vamos trabalhar apenas com arquivos entre 200mb e 1gb, upei 1gb e foi beleza.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
T.P. teria como você me dar uma força?Ficaria imensamente agradecido...ou me passar onde posso achar sobre esse sistema de upload...
Peguei tudo aqui no imasters mesmo, foi um trabalhão pra acertar a pasta, mas depois de várias tentativas foi, mas aqui vai meu código pra você testar....
<form name="frmFtp" method="post" enctype="multipart/form-data"><input name="arquivo" type="file" size="55" maxlength="55"><br /><input type="submit" name="btnEnviar" value="Enviar"></form>
<? $server = "ftp.******.com.br";     $usuario = "****";     $senha  = "*****";   //VERIFICA SE O FORM FOI ENVIADO PARA CONECTAR E ENVIAR O ARQUIVO AO FTP if($_POST) {     //RECEBE O ARQUIVO  $arqName = $_FILES[arquivo][name];    $arqTemp = $_FILES[arquivo][tmp_name];      //CONECTA AO FTP  $conn = ftp_connect($server)  or die ("ERRO AO CONECTAR AO SERVIDOR DE FTP ".$server); //TENTA EFETUAR O LOGIN COM USUÁRIO E SENHA DE ACESSO  if(@ftp_login($conn, $usuario, $senha) ) {  //ENVIA O ARQUIVO   $status = ftp_put($conn, '/public_html/restrito/'.$arqName, $arqTemp, FTP_ASCII);     //VERIFICA SE O ARQUIVO FOI ENVIADO  if($status) { 	echo "<div id=\"msg\">O arquivo <strong>$arqName</strong> foi enviado com Sucesso!</div>";    }//FECHA IF ( status )   else { 	echo "<div id='msg'>Erro! Aconteceu algum problema no envio do arquivo.</div>";    }//FECHA ELSE 	}//FECHA IF (LOGIN)	else {   echo "<div id='msg'>Não foi possível efetuar a conexão. Verifique o usuário e a senha de acesso.</div>";	}//FECHA ELSE		//TERMINA A EXECUÇÃO	die;   }//FECHA IF ( POST ) ?>
Só jogar tudo na mesma página... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

é trabalhoso mas vale a pena.

Com certeza, é o melhor sistema de upload, não precisa se preocupar com safe mod nem nada, além do tamanho do arquivo ser configurado por você.....

 

Ontem mesmo fiz um teste, aqui vamos trabalhar apenas com arquivos entre 200mb e 1gb, upei 1gb e foi beleza.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

T.P. teria como você me dar uma força?Ficaria imensamente agradecido...ou me passar onde posso achar sobre esse sistema de upload...

 

Peguei tudo aqui no imasters mesmo, foi um trabalhão pra acertar a pasta, mas depois de várias tentativas foi, mas aqui vai meu código pra você testar....

 

 

<form name="frmFtp" method="post" enctype="multipart/form-data"><input name="arquivo" type="file" size="55" maxlength="55"><br /><input type="submit" name="btnEnviar" value="Enviar"></form>
<? $server = "ftp.******.com.br";     $usuario = "****";     $senha  = "*****";   //VERIFICA SE O FORM FOI ENVIADO PARA CONECTAR E ENVIAR O ARQUIVO AO FTP if($_POST) {     //RECEBE O ARQUIVO  $arqName = $_FILES[arquivo][name];    $arqTemp = $_FILES[arquivo][tmp_name];      //CONECTA AO FTP  $conn = ftp_connect($server)  or die ("ERRO AO CONECTAR AO SERVIDOR DE FTP ".$server); //TENTA EFETUAR O LOGIN COM USUÁRIO E SENHA DE ACESSO  if(@ftp_login($conn, $usuario, $senha) ) {  //ENVIA O ARQUIVO   $status = ftp_put($conn, '/public_html/restrito/'.$arqName, $arqTemp, FTP_ASCII);     //VERIFICA SE O ARQUIVO FOI ENVIADO  if($status) { 	echo "<div id=\"msg\">O arquivo <strong>$arqName</strong> foi enviado com Sucesso!</div>";    }//FECHA IF ( status )   else { 	echo "<div id='msg'>Erro! Aconteceu algum problema no envio do arquivo.</div>";    }//FECHA ELSE 	}//FECHA IF (LOGIN)	else {   echo "<div id='msg'>Não foi possível efetuar a conexão. Verifique o usuário e a senha de acesso.</div>";	}//FECHA ELSE		//TERMINA A EXECUÇÃO	die;   }//FECHA IF ( POST ) ?>
Só jogar tudo na mesma página... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

O meu erro tenho certeza que é um erro bobo...olha só,o erro acontece na linha:

 

$status = ftp_put($conn, '/public_html/restrito/'.$arqName, $arqTemp, FTP_ASCII);

 

Se puder me explica o que tem que ser colocado em '/public_html/restrito/'.$arqName e no $arqTemp porque acho que to interpretando esses parâmetros errado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é trabalhoso mas vale a pena.

Com certeza, é o melhor sistema de upload, não precisa se preocupar com safe mod nem nada, além do tamanho do arquivo ser configurado por você.....

 

Ontem mesmo fiz um teste, aqui vamos trabalhar apenas com arquivos entre 200mb e 1gb, upei 1gb e foi beleza.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

T.P. teria como você me dar uma força?Ficaria imensamente agradecido...ou me passar onde posso achar sobre esse sistema de upload...

 

Peguei tudo aqui no imasters mesmo, foi um trabalhão pra acertar a pasta, mas depois de várias tentativas foi, mas aqui vai meu código pra você testar....

 

 

<form name="frmFtp" method="post" enctype="multipart/form-data"><input name="arquivo" type="file" size="55" maxlength="55"><br /><input type="submit" name="btnEnviar" value="Enviar"></form>
<? $server = "ftp.******.com.br";     $usuario = "****";     $senha  = "*****";   //VERIFICA SE O FORM FOI ENVIADO PARA CONECTAR E ENVIAR O ARQUIVO AO FTP if($_POST) {     //RECEBE O ARQUIVO  $arqName = $_FILES[arquivo][name];    $arqTemp = $_FILES[arquivo][tmp_name];      //CONECTA AO FTP  $conn = ftp_connect($server)  or die ("ERRO AO CONECTAR AO SERVIDOR DE FTP ".$server); //TENTA EFETUAR O LOGIN COM USUÁRIO E SENHA DE ACESSO  if(@ftp_login($conn, $usuario, $senha) ) {  //ENVIA O ARQUIVO   $status = ftp_put($conn, '/public_html/restrito/'.$arqName, $arqTemp, FTP_ASCII);     //VERIFICA SE O ARQUIVO FOI ENVIADO  if($status) { 	echo "<div id=\"msg\">O arquivo <strong>$arqName</strong> foi enviado com Sucesso!</div>";    }//FECHA IF ( status )   else { 	echo "<div id='msg'>Erro! Aconteceu algum problema no envio do arquivo.</div>";    }//FECHA ELSE 	}//FECHA IF (LOGIN)	else {   echo "<div id='msg'>Não foi possível efetuar a conexão. Verifique o usuário e a senha de acesso.</div>";	}//FECHA ELSE		//TERMINA A EXECUÇÃO	die;   }//FECHA IF ( POST ) ?>
Só jogar tudo na mesma página... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

O meu erro tenho certeza que é um erro bobo...olha só,o erro acontece na linha:

 

$status = ftp_put($conn, '/public_html/restrito/'.$arqName, $arqTemp, FTP_ASCII);

 

Se puder me explica o que tem que ser colocado em '/public_html/restrito/'.$arqName e no $arqTemp porque acho que to interpretando esses parâmetros errado...

 

O arqTemp ele gera um arquivo temporário antes de localizar a pasta, no caso o que deve ser alterado ai é o caminho.. verifique no seu servidor como fica o caminho dos arquivos, tente entrar em contato com o server se não conseguir....

Compartilhar este post


Link para o post
Compartilhar em outros sites

é trabalhoso mas vale a pena.

Com certeza, é o melhor sistema de upload, não precisa se preocupar com safe mod nem nada, além do tamanho do arquivo ser configurado por você.....

 

Ontem mesmo fiz um teste, aqui vamos trabalhar apenas com arquivos entre 200mb e 1gb, upei 1gb e foi beleza.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

T.P. teria como você me dar uma força?Ficaria imensamente agradecido...ou me passar onde posso achar sobre esse sistema de upload...

 

Peguei tudo aqui no imasters mesmo, foi um trabalhão pra acertar a pasta, mas depois de várias tentativas foi, mas aqui vai meu código pra você testar....

 

 

<form name="frmFtp" method="post" enctype="multipart/form-data"><input name="arquivo" type="file" size="55" maxlength="55"><br /><input type="submit" name="btnEnviar" value="Enviar"></form>
<? $server = "ftp.******.com.br";     $usuario = "****";     $senha  = "*****";   //VERIFICA SE O FORM FOI ENVIADO PARA CONECTAR E ENVIAR O ARQUIVO AO FTP if($_POST) {     //RECEBE O ARQUIVO  $arqName = $_FILES[arquivo][name];    $arqTemp = $_FILES[arquivo][tmp_name];      //CONECTA AO FTP  $conn = ftp_connect($server)  or die ("ERRO AO CONECTAR AO SERVIDOR DE FTP ".$server); //TENTA EFETUAR O LOGIN COM USUÁRIO E SENHA DE ACESSO  if(@ftp_login($conn, $usuario, $senha) ) {  //ENVIA O ARQUIVO   $status = ftp_put($conn, '/public_html/restrito/'.$arqName, $arqTemp, FTP_ASCII);     //VERIFICA SE O ARQUIVO FOI ENVIADO  if($status) { 	echo "<div id=\"msg\">O arquivo <strong>$arqName</strong> foi enviado com Sucesso!</div>";    }//FECHA IF ( status )   else { 	echo "<div id='msg'>Erro! Aconteceu algum problema no envio do arquivo.</div>";    }//FECHA ELSE 	}//FECHA IF (LOGIN)	else {   echo "<div id='msg'>Não foi possível efetuar a conexão. Verifique o usuário e a senha de acesso.</div>";	}//FECHA ELSE		//TERMINA A EXECUÇÃO	die;   }//FECHA IF ( POST ) ?>
Só jogar tudo na mesma página... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

O meu erro tenho certeza que é um erro bobo...olha só,o erro acontece na linha:

 

$status = ftp_put($conn, '/public_html/restrito/'.$arqName, $arqTemp, FTP_ASCII);

 

Se puder me explica o que tem que ser colocado em '/public_html/restrito/'.$arqName e no $arqTemp porque acho que to interpretando esses parâmetros errado...

 

O arqTemp ele gera um arquivo temporário antes de localizar a pasta, no caso o que deve ser alterado ai é o caminho.. verifique no seu servidor como fica o caminho dos arquivos, tente entrar em contato com o server se não conseguir....

 

Esse erro: Warning: ftp_put() [function.ftp-put]: Rename/move failure: No such file or directory in...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro parou quando indiquei o caminho certo para o salvamento do arquivo enviado..... isso acontece porque ele não consegue ahcar o diretporio que você expecificou.....

 

O seu problema com certeza está aqui

 

$status = ftp_put($conn, '/public_html/restrito/.$arqName', $arqTemp, FTP_ASCII);

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.