Ir para conteúdo

Arquivado

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

juninhogpe

Upload de imagens

Recommended Posts

Bom dia.

 

Pessoal tenho uma galeria de fotos à qual envio todas de uma vez em um formulário e tenho uma página que recebe esses dados, cria a pasta e realiza o upload com redimensionamento das imagens. O problema é que só faz upload de 20 imagens, se eu colocar mais que isso não aparece.

 

Localmente consigo realizar o upload de mais de 20 imagens. Abaixo os códigos:

 

fotos.php

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

  <div class="form-group"> 
    <label for="exampleInputPassword1">Data</label> 
    <input type="date" name="data" class="form-control" id="exampleInputPassword1" placeholder="Data">
  </div>

  <div class="form-group"> 
    <label for="exampleInputEmail1">Autor</label> 
    <input type="text" name="autor" class="form-control" id="exampleInputEmail1" placeholder="Nome"> 
  </div> 



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


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


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

 

img-action.php

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

	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_galeria"]; 
$nome_pasta   = clean($nome_galeria);

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

// Inserção na tabela de galeria
$nome_galeria  = $_POST["nome_galeria"];
$autor         = $_POST["autor"];
$data          = date("Y-m-d", strtotime($_POST['data']));

	
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 				= 100;
			$Local_Img_comprimida[] 	= $destino_imagem;
			$Local_Img_original[]		= "";

		

			if ($nome_galeria != ""){
								
				$sql = utf8_decode("INSERT INTO galeria (nome, data, autor, nome_pasta) 
								VALUES ('$nome_galeria', '$data','$autor', '$nome_pasta')");
				
				if($conn->query($sql) === TRUE){
					echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>");
					echo utf8_encode('<script>window.location="fotos.php";</script>');
				}
				else{
					echo "Erro: " . $sql . "<br />" .$conn->error;
					echo utf8_encode('<script>window.location="fotos.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;
							echo $Local_Img_comprimida;
							//$Local_Img_original	= $OriginalNome_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>';

	
?>

 

Já alterei também no "php.ini" os limites para:

upload_max_filesize = 500M
post_max_size = 500M

 

Mesmo assim não funciona.

 

O que acham que pode ser?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, juninhogpe disse:

O problema é que só faz upload de 20 imagens

 

Precisava nem postar todos esses códigos ai, geralmente hospedagens terceirizadas limitam o numero máximo de uploads, o limite está no php.ini na seguinte linha

max_file_uploads=20

Você deve enviar uma a cada vez e colocar as outras em fila

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
×

Informação importante

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