Jump to content


Photo

Faz O Upload Da Imagem Via Ftp Mas Corrompe A Mesma


  • Faça o login para participar
3 replies to this topic

#1 Ronimarcos

Ronimarcos

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino
  • Localidade:Rondonópolis-MT
  • Interesses:PHP, ASP, Ajax, Python, Ruby, programação web em geral

Posted 08/10/2008, 14:07

Olá pessoal.

Dúvida 1.
Peguei um script na net e o mesmo funciona normalmente a parte de upload com FTP, usando o GuildFTP (http://www.guildftpd.com/).
Mas o grande problema é que a imagem de destino fica corrompida após o upload, tento abrí-la e o windows me retorna a mensagem dizendo que o arquivo parece estár danificado ou corrompido. irei postar o código abaixo, para que vc's possam me ajudar.

<?php

//DADOS PARA CONEXÃO	  
$server  = "192.168.0.48";	
$usuario = "compras";	   
$senha   = "123";	


//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, '/'.$arqName, $arqTemp, FTP_ASCII);
	  
	  //VERIFICA SE O ARQUIVO FOI ENVIADO
	  if($status) { 
		 echo "O arquivo $arqName foi enviado com Sucesso!"; 
	  }//FECHA IF ( status )
	  else { 
		 echo "Erro! Aconteceu algum problema no envio do arquivo."; 
	  }//FECHA ELSE 
   }//FECHA IF (LOGIN)
   else {
	  echo "Não foi possível efetuar a conexão. Verifique o usuário e a senha de acesso.";
   }//FECHA ELSE
   
   //TERMINA A EXECUÇÃO
   die;
}//FECHA IF ( POST ) ?>

<html>
<head>
   <title>Dominando a integração com FTP - Parte 02</title>
</head>
   
<body bgcolor="#FFFFFF">
   <h1>Upload de arquivo - FTP</h1>
   <form name="frmFtp" method="post" enctype="multipart/form-data">
	  <table border="0" cellpading="0" cellspacing="0" width="50%">
	  <tr>
		 <td height="30" width="10%">Arquivo:</td>
		 <td height="30"width="40%"><input name="arquivo" type="file" size="35"></td>
	  </tr>
	  <tr>
		 <td height="30" width="50%" colspan="2"><input type="submit" name="btnEnviar" value="Enviar"></td>
	  </tr>
	  </table>
   </form>
</body>
</html>


Dúvida 2.

Neste mesmo script, preciso colocar no formulário mais campos e depois que fazer o upload da imagem, pegar o endereço da mesma e gravar no banco, ou seja, é um cadastro de fotos, preciso gravar no banco a legenda da imagem, um outro campo que vem de outra tabela (chave estrangeira) e o endereço da foto, que neste caso é a mesma que está sendo upada pelo FTP.
Preciso muito da ajuda de vc's, desde já agradeço.
OBS: Estou usando PHP + MYSQL + Dreamweaver
Ronimarcos G. Silva
Rondonópolis-MT

#2 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 08/10/2008, 15:03

Tente usar FTP_BINARY... :ponder:

Quanto a dúvida 2: o MySQL está no servidor onde está rodando o PHP ou está nesse servidor pra onde você está mandando a imagem?

#3 Ronimarcos

Ronimarcos

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino
  • Localidade:Rondonópolis-MT
  • Interesses:PHP, ASP, Ajax, Python, Ruby, programação web em geral

Posted 08/10/2008, 15:26

Tente usar FTP_BINARY... :ponder:

Quanto a dúvida 2: o MySQL está no servidor onde está rodando o PHP ou está nesse servidor pra onde você está mandando a imagem?


Grande Boirock, funcionou, era isso mesmo, foi só usar FTP_BINARY que ficou legal.
Tre agradeço Muito pela ajuda, e rapidez.

Quanto a dúvida 2, o MYSQL está no servidor onde está rodando o PHP, agradeço muito se puder me ajudar com essa dúvida também.
Grande abraço.

Roni.
Ronimarcos G. Silva
Rondonópolis-MT

#4 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 08/10/2008, 16:00

você quer gravar o nome do arquivo no banco?

INSERT INTO nomedatabela (nome, legenda) VALUES ('".$arqName."','".$_POST['nomedocampodalegenda']."')

isso? (y)

aí quando você for recuperar a imagem, tu puxa la <img src='imagens/<? echo $rs->nome; ?>>' (apenas exemplo)

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq