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.
      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.
    • 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, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

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