Ir para conteúdo

POWERED BY:

Arquivado

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

otaviokk

[] Upload múltiplo de imagens

Recommended Posts

Olá, estou desenvolvendo um código para upload múltiplo de imagens de um produto.O meu código já inclui as imagens direitinho, o meu problema é na tela de alteração de produto, onde o usuário não poderá incluir novas imagens a menos que apague as que já estão no servidor. Nesta mesma tela ele tem a opção de excluí-lasPedaço do form que interessa

<form method="post" enctype="multipart/form-data" name="formProd"><input type="file" name="img[]" /><br/><input type="file" name="img[]" /><br/><input type="file" name="img[]" /><br/></form>

Método upload - recebe o array das imagens envia os arquivos e retorna um array com o caminho de cada uma.

function upload($arquivo,$dir){	unset($caminho);	$tamanho = 1000000;	foreach($arquivo["name"] as $key => $nome)	{		$tipo = $arquivo["type"][$key];		$tmp = $arquivo["tmp_name"][$key];		$tam = $arquivo["size"][$key];		if(isset($nome) && $nome != "")		{			if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $tipo))			{				echo "<script type=\"text/javascript\">alert('São permitidos apenas arquivos .jpg .gif .bmp e .png. Tente novamente.')</script>";				for($j=0;$j<$key;$j++)				{	unlink($caminho[$j]); }			}			else if($tam > $tamanho)			{				echo "<script type=\"text/javascript\">alert('São permitidos arquivos de no máximo 1000 Kb de tamanho.')</script>";				for($j=0;$j<$key;$j++)				{	unlink($caminho[$j]); }			}			else			{				preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $nome, $ext);				$imagem_nome = md5(uniqid(time())) . "." . $ext[1];				$imagem_dir = $dir . $imagem_nome;				if(@move_uploaded_file($tmp, $imagem_dir));				{					$caminho[] = $imagem_dir;				}			}		}		else		$caminho[] = null;	}	return $caminho; }

Action do form usado para incluir - preciso alterar essa parte para que o não seja possível incluir uma imagem antes que a que já esteja no servidor e no banco seja excluída.

$prod = new Produto;$dbprod = new DBProduto;$imagem = $_FILES['img'];$return = $dbprod->upload($imagem,"../imagens/produtos/");if($return){	foreach($return as $key => $valor)	{		if($valor) 		$prod->set_img($valor);	}	$dbprod->update($prod);	echo "<p>Produto " .  $_POST['desc'] . " alterado com sucesso</p>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Otavio, primeiramente, bem-vindo ao fórum http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Conforme as regras, flood não é permitido. O post usado como evidência do tópico foi excluído.

 

Sobre sua dúvida, pode ser feita de várias formas. Como pude entender, poderá fazer uma leitura dos dados já gravados no banco, para verificar o valor contido no campo que grava o nome da imagem. Se for diferente de vazio (ou nulo), segue normalmente, ou seja, inclui a imagem. Do contrário, localiza o arquivo e exclui ele.

 

[]s

Anderson Mello

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.