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 landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • 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.
×

Informação importante

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