Ir para conteúdo

POWERED BY:

Arquivado

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

juninhogpe

Upload de imagem - JPG

Recommended Posts

Boa noite pessoal.

 

Tenho um formulário para realizar o upload de fotos e uma página que recebe e faz o redimensionamento das imagens.

Quando envio algumas imagens com extensão "jpg", me aparece como arquivo não suportado e outros são enviados corretamente.

 

Segue abaixo meu código do formulário e o script que recebe e redimensiona as imagens:


formulario.php

		<form name="fotos" action="img-action.php" enctype="multipart/form-data" method="post">
				  
				  <div class="form-group">
				    <label for="exampleInputEmail1">Nome</label>
				    <input type="text" name="nome" class="form-control" id="exampleInputEmail1" placeholder="Nome do carro">
				  </div>

				  <div class="clearfix"></div>

			   	  <div class="form-group">
				    <label for="exampleInputPassword1">Fotos</label>
				    <input type="file" name="file[]" id="exampleInputFile" required multiple>
				  </div>

				  <div class="clearfix"></div>
	  
		  		<button type="submit" class="btn btn-default">Cadastrar fotos</button>
			</form>

img-action.php

<?php
	
	session_start();
	if (!$_SESSION["usuarioNome"]) header("Location: index.php");
	include("conexao.php");	

	ini_set('memory_limit', '512M');
	ini_set('post_max_size', '500M');
	ini_set('upload_max_filesize', '500M');


	function clean($string) {
		$a = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕºª";
		$b = "aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRroa";
		$string = utf8_decode($string);
		$string = strtr($string, utf8_decode($a), $b); //substitui letras acentuadas por "normais"
		$string = str_replace(" ","-",$string); // retira espaco
		$string = strtolower($string); // passa tudo para minusculo
		return utf8_encode($string); //finaliza, gerando uma saída para a funcao
	}


	function resizeImage($Largura_atual,$Altura_atual,$Tamanho_Maximo,$Pasta_Destino,$SrcImage,$Qualidade_img,$Tipo_imagem){
		//Verifica se a imagem existe
		if($Largura_atual <= 0 || $Altura_atual <= 0) 
			return false;
				
		//Construção proporcional da nova imagem
		$Imagem       = min($Tamanho_Maximo/$Largura_atual, $Tamanho_Maximo/$Altura_atual); 
		$Nova_Largura = ceil($Imagem*$Largura_atual);
		$Nova_Altura  = ceil($Imagem*$Altura_atual);
		
		if($Largura_atual < $Nova_Largura || $Altura_atual < $Nova_Altura){	
			$Nova_Largura = $Largura_atual;
			$Nova_Altura = $Altura_atual;
		}
		
		$NewCanves 	= imagecreatetruecolor($Nova_Largura, $Nova_Altura);

		// Redimensionamento de imagem
		if(imagecopyresampled($NewCanves, $SrcImage,0, 0, 0, 0, $Nova_Largura, $Nova_Altura, $Largura_atual, $Altura_atual)){	
			switch(strtolower($Tipo_imagem)){	
				case 'image/png':
							imagepng($NewCanves,$Pasta_Destino);
							break;
						case 'image/gif':
							imagegif($NewCanves,$Pasta_Destino);
							break;			
						case 'image/jpeg':
						case 'image/pjpeg':
							imagejpeg($NewCanves,$Pasta_Destino,$Qualidade_img);
							break;
						default:
							return false;
			}
				if(is_resource($NewCanves)) 
					imagedestroy($NewCanves); 
					 
				return true;
		}
	}

	
	$nome_galeria = $_POST["nome"]; 
	$nome_pasta   = clean($nome_galeria);

	$destino_imagem = mkdir('fgaleria/'.$nome_pasta.'/',0777,true);

	// Inserção na tabela de galeria
	$nome_galeria  = $_POST["nome"];

	
	if(isset($_FILES['file']['name'])){


			//Configurações da Imagem
			$Tamanho_Max_Imagem 		= 640; //Largura e altura máxima da imagem
			$Prefixo_Img_redimensionada	= "imagem_comprimida"; //Prefixo para o nome da imagem salva
			$Pasta_Img_Original			= 'original/';
			$Pasta_Img_Comprimida		= 'fgaleria/'; //Diretório para onde a imagem comprimida será salva
			$Qualidade_img 				= 90;
			$Local_Img_comprimida[] 	= $destino_imagem;
			$Local_Img_original[]		= "";


			if ($nome_galeria != ""){
								
				$sql = utf8_decode("INSERT INTO fotos (nome, nome_pasta) 
								VALUES ('$nome_galeria', '$nome_pasta')");
				
				if($conn->query($sql) === TRUE){
					echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>");
					echo utf8_encode('<script>window.location="cad_foto.php";</script>');
				}
				else{
					echo "Erro: " . $sql . "<br />" .$conn->error;
					echo utf8_encode('<script>window.location="cad_foto.php";</script>');
				}
			}
			

			$cont = $_FILES['file']['tmp_name'];

			 for($i = 0; $i < count($cont); $i++){

				// Algumas informações das imagens que serão necessárias.
				$Nome_Imagem         = $_FILES['file']["name"][$i];
				$Tamanho_Imagem      = $_FILES['file']['size'][$i];
				$TempSrc             = $_FILES['file']['tmp_name'][$i];
				$Tipo_imagem         = $_FILES['file']['type'][$i];

				$Process_Imagem = true;
			
			//Validação de arquivo e criação da imagem a partir da imagem que foi feito upload.
					switch(strtolower($Tipo_imagem)){
						case 'image/png':
								$Imagem_Criada = imagecreatefrompng($TempSrc);
								break;
							case 'image/gif':
								$Imagem_Criada = imagecreatefromgif($TempSrc);
								break;
							
							case 'image/jpeg':
							case 'image/pjpeg':
								$Imagem_Criada = imagecreatefromjpeg($TempSrc);
								break;
							default:
								$Process_Imagem = false; //Formato do arquivo não suportado! 
					}

					//Pega o tamanho da imagem
					list($Largura_atual,$Altura_atual) = getimagesize($TempSrc);

					//Local para as imagens de destino
					$DestRandNome_Imagem 			= 'fgaleria/'.$nome_pasta.'/'.$Nome_Imagem; //Name for Big Image
					date_default_timezone_set('America/Sao_Paulo'); 
					$data_upload = date('Y-m-d H:i:s');
  
					//Redimensionamento da imagem para o tamanho especificado na função resizeImage.
					if($Process_Imagem && resizeImage($Largura_atual,$Altura_atual,$Tamanho_Max_Imagem,$DestRandNome_Imagem,$Imagem_Criada,$Qualidade_img,$Tipo_imagem)){	
					
							//Novo tamanho para imagem
							list($ResizedWidth,$ResizedHeight)=getimagesize($DestRandNome_Imagem);
							$Local_Img_comprimida	= $DestRandNome_Imagem;
					}

					else{
						echo '<p style="color:red;">Ocorreu um erro ao processar.<strong>'.$Nome_Imagem.'</strong></div>'; //output error
					}

		}
	
}

	echo '<script language="javascript">alert("Imagens enviadas com sucesso!")</script>';

	
?>

 

O que vocês acham que pode ser?

 

Obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

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