Ir para conteúdo

POWERED BY:

Arquivado

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

Johnison Almeida

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

Recommended Posts

eu não entendi muito rs
Mas eu tentei assim

if(!preg_match("#^(image\/(jpg|pjepg|jpeg|png|gif)$#i",$imagem["type"])){
			$error[1] = "ERRO. Formato da imagem não é suportado. Use apenas JPG,GIF,PNG.";
		}
		if (count($error)==0){
				preg_match("/\.(gif|png|jpg|jpeg|pjpeg){1}$/i", $imagem['name'], $ext);
		}

mas continua acusado o mesmo erro...
to no caminho certo ou viajei novamente ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acabei mudando um pouco o script e depois de muitas tentativas entendi rsrs
parem agora surgiu outro "erro" e uma duvida.

1 quando a imagem não esta no formato suportado ela não faz o upload porem não está mostrando o erro.

2 como o numero de imagens varia a cada cadastro e o nome e único como eu vou colocar dentro do INSERT e fazer o campo na tabela ?

 

o código ficou assim

/*4 Recuperando os dados da imagem*/		
		$imagem	= $_FILES['imagem'];
		
		/*Contando quantas imagens tem*/
		$conta = count(array_filter($imagem['name']));
		
		/*5 Criando caminho para as imagens*/
		$diretorio = "casas/$nome_pasta/";
		
		/*Pegando os tipos permitidos e o tamanho maximo*/
		$permite = array('image/jpeg', 'image/png');
		$masSize = 1024 * 1024 * 5;
		
		/*Pegando os possiveios erros que possam ocorrer durante o upload*/
		$msg = array();
		$erroMsg = array(
			1 => 'O arquivo no upload é maior do que o limite definido em upload_max_filesize no php.ini.',
			2 => 'O arquivo ultrapassa o limite de tamanho em MAX_FILE_SIZE que foi especificado no formulário HTML',
			3 => 'o upload do arquivo foi feito parcialmente',
			4 => 'Não foi feito o upload do arquivo'
		);
		
		/*6 Se o caminho não existir*/
		if(!is_dir($diretorio)){
		 	echo "Pasta $diretorio nao existe";
		}else{
			/*6b o caminho existindo */
			/*se a contagem der zero*/
			if($conta <= 0){
				echo "Selecione uma imagem";
			}else{
				/*se a contagem for maior que zero ele vai contar até chegar ao valor igual ao numero de imagens*/
				for($i = 0; $i < $conta; $i++){
					$nome 				= $imagem['name'][$i];
					$tipo 				= $imagem['type'][$i];
					$tamanho 			= $imagem['size'][$i];
					$error 				= $imagem['error'][$i];
					$caminho_temporario = $imagem['tmp_name'][$i];
					
					/*recupera a extensão de cada imagem que fica depois do ponto*/
					$extensao = end(explode('.', $nome));
					/*criando um nome unico para cada imagem*/
					$novo_nome	= rand().".$extensao";
					
					/*verifica há erros*/
					if($error != 0)
						$msg[] = "<b>$nome :</b>".$errorMsg[$error];	
						else if(!in_array($tipo, $permite))
						$msg[] = "<b>$nome :</b>ERRO. Formato da imagem não é suportado. Use apenas JPG,PNG.";
						else if($tamanho > $masSize)
						$msg[] = "<b>$nome :</b> ERRO. A imagem ultrapassa o limte de 5MB";
					else{
						$destino = $diretorio."/".$novo_nome;
						/*Não havendo erros ele faz o upload*/
						if(move_uploaded_file($caminho_temporario, $destino))
						$msg[] = "<b>$nome :</b> MOVEUUU";
						else
						$msg[] = "<b>$nome :</b> NÃO MOVEU";						
					}
				}
			}

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou colocando o $novo_nome dentro do INSERT porem só grava o caminho da ultima imagem :/

Você deve ter colocado o INSERT fora do loop. Por isso pega só o último.

Coloque-o dentro do loop e veja se resolve

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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