Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi pessoal, eu assisti uma video aula ( http://www.designteen.net/sec.php?func=videos&id=171&materia=1 ) que mostrava como cadastrar clientes com foto no banco de dados, mas eu só preciso da parte de cadastrar fotos, fiz meu código com base no da video aula mas não funcionou, será que vcs podem me ajudar?
Esse é o form da página envio_foto.php:
<form method="POST" action="acao.php?cad=foto" enctype="multipart/form-data" name="form1" id="form1">
<table width="276" border="0" cellspacing="0" cellpadding="5">
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td width="7%">Enviar:</td>
<td width="93%"><label for="imagem"></label>
<input type="file" name="imagem" id="imagem" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="button" id="button" value="Submit" /></td>
</tr>
</table>
</form>
E esse é meu PHP da página acao.php:
<?php include_once('../Connections/conexao.php');
$imagem = $_FILES['imagem'];
$tempimagem = $_FILES['imagem'];
$destino = "Fotos_Upload/Fotos/".$imagem;
if(isset($_POST['enviar'])){
if($_GET['cad']=="foto"){
if(move_uploaded_file($tempimagem, $destino)){
$cadastro=mysql_query("insert into fotos_etc values(null,'$imagem')");
echo "<script type='text/javascript'>alert('Imagem Adicionada com Sucesso!'); window.location.href='envio_foto.php'</script>";
}else{
echo "<script type='text/javascript'>alert('Erro ao Cadastrar Imagem. Tente Novamente!'); window.location.href='envio_foto.php'</script>";
}
}
}
?>
Obrigado!
Agora você imagina se uma pessoa enviar uma foto de 2 MB com 3000 x 3000,
Você vai precisar redimensionar esta imagen.
Primeiro vamos colocar o mínimo de segurança nisso;
Adicione:
$imagem = $_FILES['imagem']['name'];
$tempimagem = $_FILES['imagem']['tmp_name'];
$tipomime = $_FILES['imagem']['type'];
$tipomime = preg_replace( "/^(.+?);.*$/", "\\1",$tipomime );
$securityStart = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-';
$imagem = preg_replace('/[^'. $securityStart .']|\.+$/i', "", basename($imagem));
Procure não salvar o arquivo com o mesmo nome pois pode ser executado facilmente pela url do navegador
Está errado aqui:
Faça assim: