Ir para conteúdo
Fabyo

Upload de foto e salvando o path no banco

Recommended Posts

<span style='font-size:14pt;line-height:100%'>Upload de foto e salvando o path no banco</span>

 

Como tenho visto bastante gente com duvidas sobre como salvar a imagem num banco de dados ,resolvi postar um exemplo simples

 

index.html:

 

<html>
<head>
<title>Upload</title>
</head>
<body bgcolor = "#FFFFFF" text = "#000000">
<form name = "form1" method = "post" action = "upload.php" enctype = "multipart/form-data">
 <input type = "file" name = "arquivo">
 <input type = "submit" name = "Submit" value = "Enviar">
</form>
</body>
</html>

 

upload.php:

 

<?php

 

//Fabyo Guimaraes

 

//se existir o arquivo

if(isset($_FILES["arquivo"])){

 

$arquivo = $_FILES["arquivo"];

 

$pasta_dir = "arquivos/";//diretorio dos arquivos

//se nao existir a pasta ele cria uma

if(!file_exists($pasta_dir)){

mkdir($pasta_dir);

}

 

$arquivo_nome = $pasta_dir . $arquivo["name"];

 

// Faz o upload da imagem

move_uploaded_file($arquivo["tmp_name"], $arquivo_nome);

 

//conecta no banco

$cn = mysql_connect("localhost");

mysql_select_db("banco");

 

//aqui salva no banco o path da foto

<font face="verdana">mysql_query("INSERT INTO tabela VALUES ('', '$arquivo_nome')");
mysql_close($cn); </font>

 

}

 

?>

 

aqui você lista as fotos que estao no banco

 

listar.php:

 

<?php

//Autor Fabyo Guimaraes

 

//conecta no banco

<font face="verdana">$cn = mysql_connect("localhost");
mysql_select_db("banco"); </font>

 

//seleciona a tabela

<font face="verdana">$sql = "Select * from tabela";
$query = mysql_query($sql);

while($row = mysql_fetch_array($query)){

$fotos = $row["fotos"];

echo "<img src=\"$fotos\">

";
} </font>

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Fábio,

 

Estive executando este passo a passo,porém, no upload surge a seguinte mensagem:

Parse error: parse error in c:\serv-n\www\bcoimagem\upload.php on line 27 e a referida linha é: mysql_query("INSERT INTO imagens VALUES ('','$formato', '$imagem')");

 

no arquivo listar.php, surge uma tela indecifravel e não a foto.

 

Por favor um helpppp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você acrescentou mais um campo no seu script entao você precisa acrescentar no banco tbm e tenta ver uma linha antes se você esqueceu de colocar ( ; )

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso eu tenho um formulário que o cliente cadastra os imóveis no bd. Bom, depois que ele preencher todo o formulário, o último campo seria pra ele fazer o upload das fotos, no caso até 4 fotos, como seria para implantar esse código no meu form, sendo que o path teria que ser gravado junto com a inserção dos dados do form, e as fotos teriam que ir para a pasta. No caso eu não terei a página upload.php?Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caras upload é mole difícil é thumbs ou controle se o arquivo já existe criar outro nome.

Abaixo um script com o formulário e o script no mesmo arquivo... basta lembrar de que adotarei a conexão através de um require*

 

<form action="teste.php?opercao=upload" method="post" enctype="multipart/form-data" name="form1" target="_self">

Arquivo:

<input name="file" type="file" size="50" maxlength="50">

<br>

Descrição:

<input name="descricao" type="text" size="50" maxlength="50">

<br>

<input type="submit" name="Submit" value="enviar">

</form>

<?php

require("conection.php"); // arquivo onde contem parametros de conexão com o MYSQL

if((isset($_GET['operacao'])) && ($_GET['operacao'] == "upload")) // recebe váriáves

{

$file = $_FILES['file']['name'];

$file_size = $_FILES['file']['size'];

$descricao = $_POST['descricao'];

// mude para o diretório que você quizer a partir da raiz do site

$diretorio = "diretoriodestino/";

// tamanho em bytes do seu arquivo - Especifique o tamanho desejado

$max_file_size = 16000; // mais ou menos 120x120 (avatar)

// caso não seja inserido um arquivo

if(empty($file)

{

echo "<center>Arquivo não existente, você deve enviar um arquivo</center>";

echo '<meta http-equiv="refresh" content="3; URL=teste.php">';

}

// caso o arquivo seja maior do que o desejado

elseif ($file_size > $max_file_size)

{

echo "<center>Arquivo muito grande</center>";

echo '<meta http-equiv="refresh" content="3; URL=teste.php">';

}

// se tudo der ok..... prossegue enviando e salvando

else

{

// move o arquivo do temp para o diretório especificado + nome do arquivo

move_uploaded_file($_FILES['avatar']['tmp_name'], $diretorio.$file);

// Grava no banco de dados

$gravar = mysql_query("INSERT INTO tabela (arquivo, descricao) VALUES ('$file', '$descricao')", $con);

//$con = conexão com MYSQL -- >> require("conection.php");

}

}

?>

 

 

espero que ajude..... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

A propósito... mandar váris fotos de uma só vez não fica muito mestavel apesar de possuirmos banda larga... pode dar pau no max_upload.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, eu tentei efetuar o codigo em minha maqina.

 

 

Estou tendo a seguinte mensagem de erro:

Parse error: parse error in c:\web\upload\upload.php on line 28

 

 

Acredito que o erro seja no bd.

 

Se puder colar o txt de criação das tabelas fico grato.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ultimo script postado nunca vai funcionar se não colocar esta linha diferentemove_uploaded_file($_FILES['avatar']['tmp_name'], $diretorio.$file);seguindo a logica seria assimmove_uploaded_file($_FILES['file']['tmp_name'], $diretorio.$file);e se eu fosse usar este script colocaria um if(is_dir($diretorio)) para ver se existe i diretorio de caso contrario faz um mkdir();... so pra garantir...T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem pode me ajudar...Pra mim ta aparecendo este erro ao tentar fazer o move_Upload

Warning: move_uploaded_file(arquivos/Moises0001.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in c:\Inetpub\wwwroot\teste\upload.php on line 15Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\PHP\uploadtemp\php3D.tmp' to 'arquivos/Moises0001.jpg' in c:\Inetpub\wwwroot\teste\upload.php on line 15

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode crer Fabyo... na verdade eu so Redefini Permissão do Usuario Anonimo de Web para poder criar arquivos nesta pasta e foi de boa... Muito obrigado pela ajuda cara...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo eu again...Cara, se a pessoa deixar o campo foto em branco vai apresentar erro. Como fazer para, caso ela deixar o campo foto em branco, o Form pegar a foto que ja esta hospedada no servidor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu nao tenho duvidas no script e so uma duvida de opções.Eu to fazendo um site aqui e ele tem galeria de fotos. so que em vez de eu guardar o nome da foto no BD eu to guardando endereço onde elas estão.Ai na pagina que exibe as fotos eu leio o diretorio inteiro atraz das img e mostro todas elas na pagina. Qual desses modos você me recomendaria +?Colocar o link de todas no BD? ou ler o diretorio? Eu acho q ler o diretorio ele carrega muito, e ja com o BD eu tbm posso colocar a opção de comentarios em cada foto ne?mas queria saber a opnião da galera ai..Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

como você ta fazendo?

 

você precisa ter permissao para poder apagar

 

da algum erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ngm tem um script para salvar imagens como BLOB e recupera-las na interface???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

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