WEB - Como trocar botão de Enviar Foto por um botão tipo imagem?

18/05/2015

0

PHP

Como o exemplo do facebook, do whats´app e até mesmo deste site, como faço para substituir o botão submit padrão por uma imagem?
César

César

Responder

Post mais votado

18/05/2015

Se entendi bem, você quer alterar o botão de upload da imagem. Caso seja isso mesmo, você pode fazer isso via CSS.

Digamos que você possui este form:
<form action="" method="post" enctype="multipart/form-data">
    <div class="upload">
        <input type="file" name="upload"/>
    </div>
</form>


E em seu CSS você faria isso:
div.upload {
    width: 127px;
    height: 127px;
    background: url(http://uf.pe/images/file-upload-icon.png);
    overflow: hidden;
}

div.upload input {
    display: block !important;
    width: 127px !important;
    height: 127px !important;
    opacity: 0 !important;
    overflow: hidden !important;
}


Pode ver um exemplo funcional [url:descricao=clicando neste link!]http://jsfiddle.net/randrade/248wmag6/[/url]

Randrade

Randrade
Responder

Mais Posts

18/05/2015

Marcio Araujo

Boa tarde César, explica bem esse artigo:

[url]http://www.maujor.com/blog/2006/05/28/botao-enviar-do-formulario/[/url]
Responder

18/05/2015

César

@Randrade vlw mano, deu certinho! Era exatamente o que eu queria, te devo essa!
Responder

18/05/2015

Randrade

@Randrade vlw mano, deu certinho! Era exatamente o que eu queria, te devo essa!


Beleza mano, fico feliz em ajudar.
Responder

27/05/2015

César

Retomando o tópico, gostaria que alguém me ajudasse a corrigir este código e acrescentar melhorias nele, seria o código:

<?php
// Conexão com o banco de dados
	include "../../bancodedadosconfig/tabelafotos.php";
	$conexaotabelafotos = new mysqli($host, $username, $password, $database);
	if (mysqli_connect_errno()) trigger_error(mysqli_connect_error());

// Se o usuário clicou no botão cadastrar efetua as alterações
if ($_POST['enviarfotoperfil']) {
	
	// Recupera os dados dos campos
	$fotoperfil = $_FILES["fotoperfil"];

	// Se a foto estiver sido selecionada
	if (!empty($fotoperfil["name"])) {
		
		// Largura máxima em pixels
		$largura = 2000;
		// Altura máxima em pixels
		$altura = 2000;
		// Tamanho máximo do arquivo em bytes
		$tamanho = 1000;
 
    	// Verifica se o arquivo é uma imagem
    	if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){
     	   $error[1] = "Isso não é uma imagem.";
   	 	} 
	
		// Pega as dimensões da imagem
		$dimensoes = getimagesize($fotoperfil["tmp_name"]);
	
		// Verifica se a largura da imagem é maior que a largura permitida
		if($dimensoes[0] > $largura) {
			$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
		}
 
		// Verifica se a altura da imagem é maior que a altura permitida
		if($dimensoes[1] > $altura) {
			$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
		}
		
		// Verifica se o tamanho da imagem é maior que o tamanho permitido
		if($foto["size"] > $tamanho) {
   		 	$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
		}
 
		// Se não houver nenhum erro
		if (count($error) == 0) {
		
			// Pega extensão da imagem
			preg_match("/\.(gif|bmp|png|jpg|jpeg)$/i", $foto["name"], $ext);
 
        	// Gera um nome único para a imagem
        	$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
 
        	// Caminho de onde ficará a imagem
        	$caminho_imagem = "fotosdatabase/" . $nome_imagem;
 
			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($foto["tmp_name"], $caminho_imagem);
		
			// Insere os dados no banco
			$sql = mysql_query("INSERT INTO usuarios VALUES ('', '".$nome_imagem."')");
		
			// Se os dados forem inseridos com sucesso
			if ($sql){
				echo "A foto foi enviada com sucesso.";
			}
		}
	
		// Se houver mensagens de erro, exibe-as
		if (count($error) != 0) {
			foreach ($error as $erro) {
				echo $erro . "<br />";
			}
		}
	}
}


?>


O trecho de código a seguir é que não está funcionando, pois mesmo fazendo upload de arquivo .jpeg acusa de não ser imagem:

// Verifica se o arquivo é uma imagem
    	if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){
     	   $error[1] = "Isso não é uma imagem.";
   	 	} 


Além disso, gostaria de acrescentar uma funcionalidade que redimensione a imagem para ficar com a mesma dimensão de foto de perfil, tipo uns 100x100px;

Desde já,
Muito Obrigado pelas respostas.
Responder

28/05/2015

César

Muito bom dia!

Então, consegui resolver meu código ontem a noite, e agora só me resta mostrar as imagens levadas ao banco de dados à página, obedecendo a regra de que a foto deve ser do session... Mas acho que isso resolvo fácil.

Att
César M.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar