Ir para conteúdo

Arquivado

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

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

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

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

×

Informação importante

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