Ir para conteúdo

Arquivado

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

Francisca2010

Script FTP para Upload de imagem

Recommended Posts

Bom dia a todos, gente sera que exite alguma outra forma te enviar foto para o servidor (site) fazendo um script para o usuário só clicar e enviar automático via FTP ?

 

Pois o cliente tem dificuldade de abrir o filezila e procurar a locação das imagem. por isso a pergunta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cesar então a função de Upload ja tenho, de um jeito ou de outro eu preciso enviar as fotos via FTP, pois estamos nos tratando de Imagem, queria fazer isso via .bat ao invés do cara ir Lá abrir o Filezila e enviar manual para o Host entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Francisca2010 segue o código de upload de arquivos.

 

código do index.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>

<form method="post" action="recebe_upload.php" enctype="multipart/form-data">
<label>Arquivo</label>
<input type="file" name="arquivo" />
<input type="submit" value="Enviar" />
</form>

</body>
</html>

esse código é o que faz funcionar tudo

recebe_upload.php

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

// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = 'upload/';
// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 5906 * 4725 * 20; // dimensão da imagem e o peso 20Mb
// Array com as extensões permitidas
$_UP['extensoes'] = array('jpg', 'png', 'gif', 'rar','zip'); // os formatos aceitos
// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
$_UP['renomeia'] = false;
// Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';
// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['arquivo']['error'] != 0) {
die("Não foi possível fazer o upload, erro:<br />" . $_UP['erros'][$_FILES['arquivo']['error']]);
exit; // Para a execução do script
}
// Caso script chegue a esse ponto, não houve erro com o upload e o PHP pode continuar
// Faz a verificação da extensão do arquivo
$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
if (array_search($extensao, $_UP['extensoes']) === false) {
echo "Por favor, envie arquivos com as seguintes extensões: jpg, png ou gif";
}
// Faz a verificação do tamanho do arquivo
else if ($_UP['tamanho'] < $_FILES['arquivo']['size']) {
echo "O arquivo enviado é muito grande, envie arquivos de até 5Mb.";
}
// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
else {
// Primeiro verifica se deve trocar o nome do arquivo
if ($_UP['renomeia'] == true) {
// Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
$nome_final = time().'.jpg';
} else {
// Mantém o nome original do arquivo
$nome_final = $_FILES['arquivo']['name'];
}
// Depois verifica se é possível mover o arquivo para a pasta escolhida
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['upload'] . $nome_final)) {
// Upload efetuado com sucesso, exibe uma mensagem e um link para o arquivo
echo "Upload efetuado com sucesso!";
echo '<br /><a href="' . $_UP['upload'] . $nome_final . '">Clique aqui para acessar o arquivo</a>';
} else {
// Não foi possível fazer o upload, provavelmente a pasta está incorreta
echo "Não foi possível enviar o arquivo, tente novamente";
}
}
?>

OBS.:

esses dois arquivos tem que esta dentro da pasta onde você quer armazenar as fotos.

nesse código acima tem o nome "upload/" minha pasta se chama upload, se você for coloca em uma pasta com nome diferente você tem que mudar o nome da pasta.

também tem que dar Permissão do arquivo 777.

 

qualquer duvida estamos aqui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

#7 qual é diferença do #5? deu um copy legal!

 

 

e #1

 

Sempre existe alguma algum code no Git que serve como base, o problema é que mais fácil ficar pedindo algo pronto no fórum do que procurar. :assobiando:

 

https://github.com/paulomcnally/photobucket-ftp-php

 

http://stackoverflow.com/questions/14280688/ftp-upload-via-php-form

 

Adapte a sua necessidade...

 

Dúvidas sobre o código pergunte!

 

Há ia me esquecendo estude as funções, aprendemos muito lendo :skull:

http://www.php.net/manual/pt_BR/ref.ftp.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Williams em nenhum momento pedi código pronto você ta falando o que nao é, so estou perguntando se existe essa forma de arquivo *(.bat), ja que estamos tratando de Imagens, .

 

Williams Sua resposta não resultou em nada.

 

  • Aderson Designer obrigado pela forcinha, quer dizer que dessa forma que estou pretendendo fazer não exite entao ?

se torna melhor fazer com o Php mesmo ?

mesmo assim eu nao preciso enviar a imagem via FTP para a pasta do Host ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que não, tbm sou iniciante.a melhor forma de enviar arquivos imagens pro servidor da hospedagem que eu achei foi essa, ta dando certo para o meu uso.

 

PHP é a melhor Opção

 

não desta forma não precisa usar o cliente de FTP.

defina só a pasta onde as imagens vão fica armazenadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Williams em nenhum momento pedi código pronto você ta falando o que nao é, so estou perguntando se existe essa forma de arquivo *(.bat), ja que estamos tratando de Imagens, .

 

Williams Sua resposta não resultou em nada.

 

  • Aderson Designer obrigado pela forcinha, quer dizer que dessa forma que estou pretendendo fazer não exite entao ?

se torna melhor fazer com o Php mesmo ?

mesmo assim eu nao preciso enviar a imagem via FTP para a pasta do Host ??

 

Até no titulo do post você fal sobre FTP brow

 

Script FTP para Upload de imagem

 

O que lhe passei é melhor que .bat

Para controlar corretamente esses arquivos, crie uma tabela no banco de dados onde eles estarão listados, e faça uma sincronia com as pastas do sistema.

 

Obs.: Esta função é muito usada para quem quer enviar diversas fotos de uma só vez, até mesmo compactada, desde que as descompacte no back-end é claro.

 

Se não é isso que você quer contrate uma consultoria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi você estas tentando enviar arquivos via FTP do windows e tbm um .bat pra logar automaticamente no ftp e depois enviar atravez do PUT o arquivo certo ? se for isso voce precisa usar

 

http://es.php.net/manual/es/function.exec.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal hospedei meu site no http://e.freewebhostingarea.com/ e um dos links tenho uma pg de perfil, cadastra tudo beleza, menos o carregamento da foto, o principal.

 

Alguém pode dar uma analisada?

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
	<title>Sistema de Cadastro</title>
	<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
	<link rel="stylesheet" type="text/css" href="css/custom.css">
</head>
<body>
	<div class='container box-mensagem-crud'>
		<?php 
		require 'conexao.php';



		// Atribui uma conexão PDO
		$conexao = conexao::getInstance();

		// Recebe os dados enviados pela submissão
		$acao  = (isset($_POST['acao'])) ? $_POST['acao'] : '';
		$id    = (isset($_POST['id'])) ? $_POST['id'] : '';
		$nome  = (isset($_POST['nome'])) ? $_POST['nome'] : '';
		$cpf   = (isset($_POST['cpf'])) ? str_replace(array('.','-'), '', $_POST['cpf']): '';
		$email = (isset($_POST['email'])) ? $_POST['email'] : '';
		$foto_atual		  = (isset($_POST['foto_atual'])) ? $_POST['foto_atual'] : '';
		$data_nascimento  = (isset($_POST['data_nascimento'])) ? $_POST['data_nascimento'] : '';
		$telefone  		  = (isset($_POST['telefone'])) ? str_replace(array('-', ' '), '', $_POST['telefone']) : '';
		$celular   		  = (isset($_POST['celular'])) ? str_replace(array('-', ' '), '', $_POST['celular']) : '';
		$status    		  = (isset($_POST['status'])) ? $_POST['status'] : '';


		// Valida os dados recebidos
		$mensagem = '';
		if ($acao == 'editar' && $id == ''):
		    $mensagem .= '<li>ID do registros desconhecido.</li>';
	    endif;

	    // Se for ação diferente de excluir valida os dados obrigatórios
	    if ($acao != 'excluir'):
			if ($nome == '' || strlen($nome) < 3):
				$mensagem .= '<li>Favor preencher o Nome.</li>';
		    endif;

			if ($cpf == ''):
			   $mensagem .= '<li>Favor preencher o CPF.</li>';
		    elseif(strlen($cpf) < 11):
				  $mensagem .= '<li>Formato do CPF inválido.</li>';
		    endif;

			if ($email == ''):
				$mensagem .= '<li>Favor preencher o E-mail.</li>';
			elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)):
				  $mensagem .= '<li>Formato do E-mail inválido.</li>';
			endif;

			if ($data_nascimento == ''): 		
				$mensagem .= '<li>Favor preencher a Data de Nascimento.</li>';
			else:
				$data = explode('/', $data_nascimento);
				if (!checkdate($data[1], $data[0], $data[2])):
					$mensagem .= '<li>Formato da Data de Nascimento inválido.</li>';
				endif;
			endif;

			if ($telefone == ''): 
				$mensagem .= '<li>Favor preencher o Telefone.</li>';
			elseif(strlen($telefone) < 10):
				  $mensagem .= '<li>Formato do Telefone inválido.</li>';
		    endif;

			if ($celular == ''):
				$mensagem .= '<li>Favor preencher o Celular.</li>';
			elseif(strlen($celular) < 11):
				  $mensagem .= '<li>Formato do Celular inválido.</li>';
			endif;

			if ($status == ''):
			   $mensagem .= '<li>Favor preencher o Status.</li>';
			endif;

			if ($mensagem != ''):
				$mensagem = '<ul>' . $mensagem . '</ul>';
				echo "<div class='alert alert-danger' role='alert'>".$mensagem."</div> ";
				exit;
			endif;

			// Constrói a data no formato ANSI yyyy/mm/dd
			$data_temp = explode('/', $data_nascimento);
			$data_ansi = $data_temp[2] . '/' . $data_temp[1] . '/' . $data_temp[0];
		endif;

// =========================================================================================================

		// Verifica se foi solicitada a inclusão de dados
		//========= Incluir ==========
		if ($acao == 'incluir'):



			$nome_foto = 'padrao.jpg';
			if(isset($_FILES['sistema/foto/']) && $_FILES['sistema/foto/']['size'] > 0):  

				$extensoes_aceitas = array('bmp' ,'png', 'svg', 'jpeg', 'jpg');
			    $extensao = strtolower(end(explode('.', $_FILES['sistema/foto/']['name'])));

			     // Validamos se a extensão do arquivo é aceita
			    if (array_search($extensao, $extensoes_aceitas) === false):
			       echo "<h1>Extensão Inválida!</h1>";
			       exit;
			    endif;
 
			     // Verifica se o upload foi enviado via POST   
			     if(is_uploaded_file($_FILES['sistema/foto/']['tmp_name'])):  
			             
			          // Verifica se o diretório de destino existe, senão existir cria o diretório  
			          if(!file_exists("sistema/foto/")):  
			               mkdir("sistema/foto/");  
			          endif;  
			  
			          // Monta o caminho de destino com o nome do arquivo  
			          $nome_foto = date('dmY') . '_' . $_FILES['sistema/foto/']['name'];  

			            $uploads_dir = "sistema/foto/";
			                            
                        //Aqui é o diretório que é salva a foto

                        $db_dir="sistema/foto/";
			            
			          // Essa função move_uploaded_file() copia e verifica se o arquivo enviado foi copiado com sucesso para o destino  
			          if (!move_uploaded_file($_FILES['sistema/foto/']['tmp_name'], '$uploads_dir/'.$nome_foto)):  
			               echo "Houve um erro ao gravar arquivo na pasta de destino!";  
			          endif;  
			     endif;  
			endif;

			$sql = 'INSERT INTO tab_clientes (nome, email, cpf, data_nascimento, telefone, celular, status, foto)
							   VALUES(:nome, :email, :cpf, :data_nascimento, :telefone, :celular, :status, :foto)';

			$stm = $conexao->prepare($sql);
			$stm->bindValue(':nome', $nome);
			$stm->bindValue(':email', $email);
			$stm->bindValue(':cpf', $cpf);
			$stm->bindValue(':data_nascimento', $data_ansi);
			$stm->bindValue(':telefone', $telefone);
			$stm->bindValue(':celular', $celular);
			$stm->bindValue(':status', $status);
			$stm->bindValue(':foto', $nome_foto);
			$retorno = $stm->execute();

			if ($retorno):
				echo "<div class='alert alert-success' role='alert'>Registro inserido com sucesso, aguarde você está sendo redirecionado ...</div> ";
		    else:
		    	echo "<div class='alert alert-danger' role='alert'>Erro ao inserir registro!</div> ";
			endif;

			echo "<meta http-equiv=refresh content='3;URL=index.php'>";
		endif;




// ==================================================================================================================

		// Verifica se foi solicitada a edição de dados
		//  ========== EDITAR ===========
		if ($acao == 'editar'):

			if(isset($_FILES['sistema/foto/']) && $_FILES['sistema/foto/']['size'] > 0): 

				// Verifica se a foto é diferente da padrão, se verdadeiro exclui a foto antiga da pasta
				if ($foto_atual <> 'padrao.jpg'):
					unlink("sistema/foto/" . $foto_atual);
				endif;

				$extensoes_aceitas = array('bmp' ,'png', 'svg', 'jpeg', 'jpg');
			    $extensao = strtolower(end(explode('.', $_FILES['sistema/foto/']['name'])));

			     // Validamos se a extensão do arquivo é aceita
			    if (array_search($extensao, $extensoes_aceitas) === false):
			       echo "<h1>Extensão Inválida!</h1>";
			       exit;
			    endif;
 
			     // Verifica se o upload foi enviado via POST   
			     if(is_uploaded_file($_FILES['sistema/foto/']['tmp_name'])):  
			             
			          // Verifica se o diretório de destino existe, senão existir cria o diretório  
			          if(!file_exists("sistema/foto/")):  
			               mkdir("sistema/foto/");  
			          endif;  
			  
			        
			           // Monta o caminho de destino com o nome do arquivo  
			          $nome_foto = date('dmY') . '_' . $_FILES['sistema/foto/']['name'];  

			           
			            
			          // Essa função move_uploaded_file() copia e verifica se o arquivo enviado foi copiado com sucesso para o destino  
			          if (!move_uploaded_file($_FILES['sistema/foto/']['tmp_name'], ' http://armstrongetc.6te.net/sistema/foto/'.$nome_foto)):  
			               echo "Houve um erro ao gravar arquivo na pasta de destino!";  
			            

			          endif;  
			     endif;
			else:

			 	$nome_foto = $foto_atual;

			endif;

			$sql = 'UPDATE tab_clientes SET nome=:nome, email=:email, cpf=:cpf, data_nascimento=:data_nascimento, telefone=:telefone, celular=:celular, status=:status, foto=:foto ';
			$sql .= 'WHERE id = :id';

			$stm = $conexao->prepare($sql);
			$stm->bindValue(':nome', $nome);
			$stm->bindValue(':email', $email);
			$stm->bindValue(':cpf', $cpf);
			$stm->bindValue(':data_nascimento', $data_ansi);
			$stm->bindValue(':telefone', $telefone);
			$stm->bindValue(':celular', $celular);
			$stm->bindValue(':status', $status);
			$stm->bindValue(':foto', $nome_foto);
			$stm->bindValue(':id', $id);
			$retorno = $stm->execute();

			if ($retorno):
				echo "<div class='alert alert-success' role='alert'>Registro editado com sucesso, aguarde você está sendo redirecionado ...</div> ";
		    else:
		    	echo "<div class='alert alert-danger' role='alert'>Erro ao editar registro!</div> ";
			endif;

			echo "<meta http-equiv=refresh content='3;URL=index.php'>";
		endif;
//================================================================================================================










		// Verifica se foi solicitada a exclusão dos dados
		// ========== EXCLUIR ===========
		if ($acao == 'excluir'):

			// Captura o nome da foto para excluir da pasta
			$sql = "SELECT foto FROM tab_clientes WHERE id = :id AND foto <> 'padrao.jpg'";
			$stm = $conexao->prepare($sql);
			$stm->bindValue(':id', $id);
			$stm->execute();
			$cliente = $stm->fetch(PDO::FETCH_OBJ);

			if (!empty($cliente) && file_exists('sistema/foto/'.$cliente->foto)):
				unlink("sistema/foto/" . $cliente->foto);
			$caminho = 'sistema/foto/';
			endif;

			// Exclui o registro do banco de dados
			$sql = 'DELETE FROM tab_clientes WHERE id = :id';
			$stm = $conexao->prepare($sql);
			$stm->bindValue(':id', $id);
			$retorno = $stm->execute();

			if ($retorno):
				echo "<div class='alert alert-success' role='alert'>Registro excluído com sucesso, aguarde você está sendo redirecionado ...</div> ";
		    else:
		    	echo "<div class='alert alert-danger' role='alert'>Erro ao excluir registro!</div> ";
			endif;

			echo "<meta http-equiv=refresh content='3;URL=index.php'>";
		endif;


/*-----------------------------------------------------------------------------*
 * Conexão FTP
/*----------------------------------------------------------------------------*/

// IP do Servidor FTP
$servidor_ftp = 'xx';

// Usuário e senha para o servidor FTP
$usuario_ftp = 'xx';
$senha_ftp   = 'xx';

// Extensões de arquivos permitidas
$extensoes_autorizadas = array( '.exe', '.jpg', '.mp4', '.mkv', '.txt', '.JPG' );

// Caminho da pasta FTP
$caminho = 'sistema/foto/';

// Realiza a conexão
$conexao_ftp = ftp_connect( $servidor_ftp );

// configuração de conexão
$conn_id = ftp_connect($ftp_server) or die("não pôde se conectar ao $ftp_server");

// Tenta fazer login
$login_ftp = @ftp_login( $conexao_ftp, $usuario_ftp, $senha_ftp );

// Se não conseguir fazer login, termina aqui
if ( ! $login_ftp ) {
	exit('Usuário ou senha FTP incorretos.');
}

// Envia o arquivo
if ( @ftp_put( $conexao_ftp, $destino, $arquivo_temp, FTP_BINARY ) ) {
	// Se for enviado, mostra essa mensagem
	echo '<center> <h1>Arquivo enviado com sucesso!</h1></center>';
} else {
	// Se não for enviado, mostra essa mensagem
	echo '<center> <h1>Erro ao enviar arquivo!</h1></center>';
}

// Fecha a conexão FTP
ftp_close( $conexao_ftp );




		?>

	</div>
</body>
</html>

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.