Ir para conteúdo

Arquivado

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

marlone

Cadastrar múltiplas fotos PHP

Recommended Posts

Estou tentando cadastrar multiplas imagens com prevew, mas esta dando erro e não cadastra nenhuma... Alguém pode me ajudar?

 

<?php
include('config/conn.php');
ini_set('memory_limit', '1024MM');

class UploadImagem{
public $width; 
public $height; 
protected $tipos = array("jpeg", "png", "gif","JPEG", "PNG", "GIF");

protected function redimensionar($caminho, $nomearquivo){

list($width_orig, $height_orig, $tipo, $atributo) = getimagesize($caminho.$nomearquivo);

$i = 0;
while($i <= 2000){//looping das resolucoes
		$i += 200;
		$resolucao = $i;
		
		$caminho_novo = $caminho.$resolucao.'/';
		
		$width = $resolucao;
		$height = $resolucao;
			
		if($width_orig > $height_orig){
		$height = ($width/$width_orig)*$height_orig;
		} elseif($width_orig < $height_orig) {
		$width = ($height/$height_orig)*$width_orig;
		}
		$novaimagem = imagecreatetruecolor($width, $height);
		switch($tipo){
		case 1:
		$origem = imagecreatefromgif($caminho.$nomearquivo);
		imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
		imagegif($novaimagem, $caminho_novo.$nomearquivo);
		break;
		case 2:
		$origem = imagecreatefromjpeg($caminho.$nomearquivo);
		imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
		imagejpeg($novaimagem, $caminho_novo.$nomearquivo);
		break;
		case 3:
		$origem = imagecreatefrompng($caminho.$nomearquivo);
		imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
		imagepng($novaimagem, $caminho_novo.$nomearquivo);
		break;
		}  

		imagedestroy($novaimagem);

}

		imagedestroy($origem);

}

protected function tirarAcento($texto){
	$com_acento = array('à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ù','ü','ú','ÿ','À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ñ','Ò','Ó','Ô','Õ','Ö','O','Ù','Ü','Ú','Ÿ',);
	$sem_acento = array('a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','u','u','u','y','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N','O','O','O','O','O','0','U','U','U','Y',);
	$final = str_replace($com_acento, $sem_acento, $texto);
	$com_pontuacao = array('´','`','¨','^','~',' ','-');
	$sem_pontuacao = array('','','','','','_','_');
	$final = str_replace($com_pontuacao, $sem_pontuacao, $final);
	return $final;
} 

public function salvar($caminho, $file, $nome_imagem){

	$caminho =  $caminho;
	$file['name'] = $this->tirarAcento(($nome_imagem));//$file['name'] NOME ORIGINAL
	$uploadfile = $caminho.$file['name'];

	$tipo = strtolower(end(explode('/', $file['type'])));
	
	if (array_search($tipo, $this->tipos) === false) {
	$mensagem = "<font color='#F00'>Envie apenas imagens no formato jpeg, png ou gif!</font>";
	return $mensagem;
	}

	else if (!move_uploaded_file($file['tmp_name'], $uploadfile)) {
	switch($file['error']){
	case 1:
	$mensagem = "<font color='#F00'>O tamanho do arquivo é maior que o tamanho permitido.</font>";
	break;
	case 2:
	$mensagem = "<font color='#F00'>O tamanho do arquivo é maior que o tamanho permitido.</font>";
	break;
	case 3:
	$mensagem = "<font color='#F00'>O upload do arquivo foi feito parcialmente.</font>";
	case 4:
	$mensagem = "<font color='#F00'>Não foi feito o upload de arquivo.</font>";
	break;
	} 

	}  else{

	list($width_orig, $height_orig) = getimagesize($uploadfile);

	if($width_orig > $this->width || $height_orig > $this->height){

		$this->redimensionar('./'.$caminho, $file['name']);		
	
	
	}
	$mensagem = "<a href='".$uploadfile."'><font color='#070'>Upload realizado com sucesso!</font><a>";
		}
	} 
}	
for($i = 0; $i < count($foto); $i++) {

	$foto = $_FILES['foto'];  
	
	$tipo = explode('/', $foto['type']);
	
	
	$extensao = $tipo[1];
}	
	if (!file_exists('imagens/')) {
		mkdir('imagens/', 0777, true);
	}	
	
 	$nome_imagem = md5(date('Y-m-d H:i:s')).'.'.$extensao;	
	$i = 0;
	while($i <= 2000){//looping das resolucoes
		$i += 200;
		$resolucao = $i;
		if (!file_exists('imagens/'.$resolucao.'/')) {
			mkdir('imagens/'.$resolucao.'/', 0777, true); 
		}
	}
	
	for($i = 0; $i < count($foto); $i++) {
		
		$upload = new UploadImagem();
		echo $upload->salvar('imagens/', $foto, $nome_imagem[$i]);
	}
		for($i = 0; $i < count($foto); $i++) {

	$result = "INSERT INTO jogos (imagem) VALUES ('$nome_imagem')";
    $resultado = mysqli_query($conn,$result);
	
	echo '<img width="200px" src="imagens/'.$nome_imagem.'">';
		}	
	
	//header('Location: http://www.highflexemborrachados.com.br/sistema/modelo.php');
		
	

	?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ative a exibição de erros no PHP conforme na orientação 3:

 

Se mesmo assim não ativar a exibição, modifique no php.ini ou procure pelos logs do servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, Gabriel Heming disse:

Ative a exibição de erros no PHP conforme na orientação 3:

 

Se mesmo assim não ativar a exibição, modifique no php.ini ou procure pelos logs do servidor.

Dei uma mexida no código e me retornou isso agora.  

 

Warning: explode() expects parameter 2 to be string, array given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72

Warning: end() expects parameter 1 to be array, null given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72
Envie apenas imagens no formato jpeg, png ou gif!
Warning: explode() expects parameter 2 to be string, array given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72

Warning: end() expects parameter 1 to be array, null given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72
Envie apenas imagens no formato jpeg, png ou gif!
Warning: explode() expects parameter 2 to be string, array given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72

Warning: end() expects parameter 1 to be array, null given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72
Envie apenas imagens no formato jpeg, png ou gif!
Warning: explode() expects parameter 2 to be string, array given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72

Warning: end() expects parameter 1 to be array, null given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72
Envie apenas imagens no formato jpeg, png ou gif!
Warning: explode() expects parameter 2 to be string, array given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72

Warning: end() expects parameter 1 to be array, null given in /home/storage/2/9f/7c/highflexemborrachado/public_html/recebe_fotos.php on line 72

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está bem claro:

Citar

Warning: explode() expects parameter 2 to be string, array given 

 

A função explode espera que o segundo parâmetro seja uma string, foi utilizado um array.

Quado o upload é utilizado como multi files, o array $_FILES fica similar a isso:

Array
(
    [download] => Array
        (
            [name] => Array
                (
                    [file1] => MyFile.txt
                    [file2] => MyFile.jpg
                )

            [type] => Array
                (
                    [file1] => text/plain
                    [file2] => image/jpeg
                )

            [tmp_name] => Array
                (
                    [file1] => /tmp/php/php1h4j1o
                    [file2] => /tmp/php/php6hst32
                )

            [error] => Array
                (
                    [file1] => UPLOAD_ERR_OK
                    [file2] => UPLOAD_ERR_OK
                )

            [size] => Array
                (
                    [file1] => 123
                    [file2] => 98174
                )
        )
)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evite duplicar tópicos, o outro foi apagado. Com as informações que tu tem até agora, o que você conseguiu fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por ILR master
      Boa tarde pessoal, tudo bem ?
       
      Eu uso o tinymce para cadastro de textos no meu siite, porém, quero fazer um sistema para que os colunistas possam fazer o próprio post.
      O problema do tinymce, é que ele mantém a formatação do texto copiado, como tamanho de fonts, negritos, etc... Quero que o usuário cole o texto e a própria textarea limpe a formatação para que ele formate como quiser.
       
      A pergunta é:
       
      O tinymce tem uma opção para desabilitar a formatação quando um texto é colocado?
      Tem alguma função via java ou php para retirar a formatação assim que o texto é colado?
      Ou é melhor usar um outro editor?
       
      Agradeço deste já.
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

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