Ir para conteúdo

POWERED BY:

Arquivado

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

Robson Silva

[Resolvido] Salvar imagem em sessão

Recommended Posts

Boa tarde.

Preciso criar um cadastro de pessoas.

Cada pessoa possui uma galeria de fotos.

O problema é que ainda não cadastrei a pessoa no banco de dados e tenho várias imagens vinculadas ao registro que será feito.

Hoje eu coloco as fotos numa pasta temporária e quando é feito o cadastro eu vinculo as imagens ao registro do banco de dados.

Se a pessoa que está cadastrando desistir do cadastro as imagens ficam na temp.

 

Criei uma rotina que verifica os arquivos da pasta temp.

Se passar 2 horas que estiverem lá eu apago.

 

Mas não queria fazer isso, acho desnecessário uma função pra isso.

Não tem como eu jogar essas imagens em sessão, ou algo parecido?

Ai na hora de incluir eu pego elas da sessão e dou um unset na session.

 

Aguardo as soluções de vcs.

 

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui, se alguem tiver alguma idéia melhor por favor ajude.

 

Eu faço o seguinte, envio a imagem pra pasta temporária, guardo o seu conteúdo em sessão e deleto ela do server.

 

move_uploaded_file($_FILES['arquivo']['tmp_name'], $_FILES['arquivo']['name']);
$image = array('name' => $_FILES['arquivo']['name'], 'data' => file_get_contents($_FILES['arquivo']['name']));
$_SESSION['image'][] = $image;
	        
unlink($_FILES['arquivo']['name']);

Na hora que o usuário clicar em cadastrar, eu faço:

 

foreach($_SESSION['image'] as $imagem)
{
   file_put_contents($imagem['name'], $imagem['data']);
}

Assim eu nao fico guardando arquivos desnecessários no servidor e só incluo a imagem se realmente for feito o cadastro.

Se alguém tiver alguma idéia de como pego o conteúdo da imagem sem precisar enviar pro servidor, agradeço.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi o problema, estou salvando o arquivo da pasta temp quando ele faz o upload, assim não preciso usar o move_upload_file

Se alguém precisar, segue o código:

 

session_start();

//Enquanto enviar arquivos vai jogando na sessão
if($_FILES['arquivo']['name'] != '')
{
	$temp = file_get_contents($_FILES['arquivo']['tmp_name']);
	$image = array('name' => $_FILES['arquivo']['name'], 'data' => $temp);
	$_SESSION['imagens'][$_FILES['arquivo']['name']] = $image;
}

//Quando cadastrar no banco de dados, pega as imagens da sessão e inclui no servidor
if(isset($_POST['cadastrar']))
{
	foreach($_SESSION['imagens'] as $imagem)
	{
	   file_put_contents($imagem['name'], $imagem['data']);
	}
	
	session_destroy(); 
}

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.