Ir para conteúdo

Arquivado

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

Vitor Morais_179192

Upload de imagens e organização dessas.

Recommended Posts

Boa noite, pessoal. Tudo bom?

Tenho um sisteminha pronto em mãos, e preciso implementar a possibilidade de upload de 5 imagens.

Acontece da seguinte forma: Há um painel de usuário, onde o form novo já está com o campo para seleção das fotos.

Preciso que, ao enviar o $_POST, o código verifique o tamanho da foto e as dimensões, e caso estejam acima dos valores padrão, não continue. Caso as dimensões e tamanho estejam ok, o php vai processar o upload, enviar as imagens para uma pasta, capturar o caminho dessas, e em seguida jogar cada uma delas nas tabelas de nomes foto1 a foto5.

 

Atualmente minha função de inserção no banco está assim:

#Insere registros dentro de uma tabela
function inserir($tabela, $dados){
	foreach($dados as $campo => $valor){
		$campos[] = utf8_decode($campo);
		$valores[] = utf8_decode("'$valor'");
	}
	$campos = implode(",", $campos);
	$valores = implode(",", $valores);
	$sql = "INSERT INTO $tabela($campos) VALUES ($valores)";
	return mysql_query($sql) or die (mysql_error());
}

Não estou pedindo para vocês escreverem o código pra mim. Apenas preciso de uma dica pra trilhar o caminho de escrita dele, pois não estou conseguindo.

Agradeço a quem puder ajudar.
Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em que parte exatamente tem dúvidas? Já fez upload de arquivos alguma vez? Se não, recomendo que estude isso separadamente primeiro, com um form só com um campo de upload. Assim que estiver mais familiarizado, integre-o com seu sistema atual.

 

Dica: ao fazer o upload, nomeie a foto usando um critério que garanta que não haverá sobrescrita de arquivos devido a nomes iguais. A função uniqid() lhe será útil. E salve na base de dados apenas o path relativo dessa imagem, a partir do diretório base do seu sistema. Assim, caso mude o sistema para outro servidor ou outra estrutura de diretório, seu sistema continuará íntegro :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é com POST e sim com FILE

Precisa colocar enctype no form

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="image" />
</form>

Estude sobre upload em PHP e os valores contidos em $_FILE

<?php
if (!isset($_FILE['image'])) {
    /* A imagem não foi enviada */
}

$image = $_FILE['image'];

if ($image['size'] > 1603037) {
    /* Imagem muito grande! */
}

/**
* Pode mudar o padrão para '<image/.*>i'
*/
elseif (!preg_match('<image/(\bj(peg|pe|pg)\b|png|gif)>i', $file['type'])) {
    /* Tentativa de enviar um arquivo que não é uma imagem */
}

/**
* Pode usar outros meios para abrir a imagem
*/
$image_contents = file_get_contents($image['tmp_name']);

/**
* Proteção contra XSS
*/

if (preg_match( "#<script|<html|<head|<title|<body|<pre|<table|<a\s+href|<img|<plaintext|<cross\-domain\-policy#si", $image_contents)) {
    /* Possível tentativa de ataque */
}

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.