Olá amigos estou com uma pequena dúvida!
eu criei uma tabela no bd com os campos
-TITULO DA NOTICIA
-SUBTITULO DA NOTICIA
-NOTICIA
-IMAGEM
e um formulario para inserir os dados em cada campo até ae tudo bem!. so que quando vou inserir a imagem nao salva no bd!
O tipo do campo no banco de dados é BLOB e o tipo de campo no formulário é FILES. So que ela nao esta sendo inserida no bd
Para pegar os dados digitados no campo eu estou usando $_POST['nomedocampo'] e para pegar a imagem estou usando $_FILES['nomedocampo'].
Obrigado
Como Gravar Imagens No Banco De Dados
Started By Allisson, 31/08/2005, 20:15
7 replies to this topic
#1
Posted 31/08/2005, 20:15
Allisson Rafael de Brito Araujo
Devagar e sempre. Se Deus é por nós, quem será contra nós?
Devagar e sempre. Se Deus é por nós, quem será contra nós?
#2
Posted 31/08/2005, 20:22
Os campos do tipo BLOB realmente são para armazenar aquivos porém temos algumas desvantagens com eles, uma delas seria a seguinte se voce tiver que listar alguns registros o seu laço(while, for ...) pode ficar tao grande que o server pode travar ou ainda demorar muito tempo para processar...
Mas referente ao teu caso:
Para armazenar algum arquivo em seu banco voce precisa fazer um tratamento "especial" com o arquivo...
faça uma busca por BLOB ou armazenar arquivos já existem alguns topicos sobre o assunto.
Falopa!
Mas referente ao teu caso:
Para armazenar algum arquivo em seu banco voce precisa fazer um tratamento "especial" com o arquivo...
faça uma busca por BLOB ou armazenar arquivos já existem alguns topicos sobre o assunto.
Falopa!
#3
Posted 31/08/2005, 20:30
Bacharel em Sistemas de Informação
#4
Posted 31/08/2005, 20:35
Boa noite amigo Allisson
Bom eu geralmente ( e muitos) não gravo as imagens propriamente dito no mysql, e sim apenas o caminho dele + o nome do arquivo, assim vc ganha mais rapidez no banco sendo que não vejo a necessidade de gravar ela no bd.
Apenas recupere o caminho de onde está indo o arquivo + o nome do arquivo.
Espero ter ajudado
Bom eu geralmente ( e muitos) não gravo as imagens propriamente dito no mysql, e sim apenas o caminho dele + o nome do arquivo, assim vc ganha mais rapidez no banco sendo que não vejo a necessidade de gravar ela no bd.
Apenas recupere o caminho de onde está indo o arquivo + o nome do arquivo.
Espero ter ajudado
#5
Posted 31/08/2005, 21:08
cara, ha muito tempo discutimos esse assunto e ele sempre volta a tona
vc pode sim gravar imagens no bd sem problema, mas vc tem uma limitaçao do campo blob, que se nao me engano(nao pesquisei, mas certamente tem no manual do mysql) é de 64kbytes(65535bytes)
ou sejam uma imagem de 70k fica truncada e nao sera exibida direito
a vantagem é que apagando o registro vc apaga a imagem, o que gravando apenas o caminho, vc, alem de apagar o registro, precisa do unlink pra apagar o arquivo
a desvantagem é a limitaçao e a complexidade do metodo... a limitaçao do tamanho de um arquivo é muito maior que os 64k de um campo blob
veja um exemplo pratico:
Autor: João Carlos Agostini (---.dsl.telesp.net.br)
Data: 13/06/2003 21:18
Olha achei este script num CD da Geek, acho que não resolve propriamente o que você gostaria de fazer, mas acho que ajuda a achar algum caminho para isso.
################################################
Como adicionar uma imagem ao MySQL?
Primeiramente, vamos criar uma tabela no Banco de Dados:
CREATE TABLE imagens (
codigo INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
formato VARCHAR(255) NOT NULL,
imagem BLOB NOT NULL
);
Pronto, agora iremos criar o script que vai envia-la para o Banco de Dados:
upload.php
<?
$caminho = "/caminho/para/a/pasta/"; // Coloque o caminho do servidor para a pasta onde as imagens vao ficar.
if(empty($file)) {
?>
<form method="POST">
Imagem: <input type="file" name="file"><br>
Formato: <select name="formato">
<option value="gif">Gif</option>
<option value="jpeg">Jpg</option>
</select><br>
<input type="submit" value="Enviar">
</form>
<?
} elseif(!empty($file)) {
$arq = $file_name;
if(move_uploaded_file($file."/".$arq, $caminho."/".$arq)) {
$abre = fopen($caminho."/".$arq, "r");
$le = fread($abre, filesize($caminho."/".$arq));
fclose($abre);
$qr = "INSERT INTO imagens (formato,imagem) VALUES('".$formato."','".addslashes($le)."')";
mysql_query($qr) or die(mysql_error());
} else {
echo "Nao foi possivel enviar a imagem!";
}
}
?>
Agora vamos fazer um script para mostrar a imagem:
imagem.php
<?
$qr = "SELECT * FROM imagens ORDER BY codigo DESC";
$sql = mysql_query($qr);
$l = mysql_fetch_array($sql);
header("Content-type: image/".$l[formato]);
echo stripslashes($l[imagem]);
?>
Pronto, agora e so usufruir do mesmo.
Tutorial por
Fabio Luis Matavelli da Silva
fabio@superphp.com.br
###############################################
vc pode sim gravar imagens no bd sem problema, mas vc tem uma limitaçao do campo blob, que se nao me engano(nao pesquisei, mas certamente tem no manual do mysql) é de 64kbytes(65535bytes)
ou sejam uma imagem de 70k fica truncada e nao sera exibida direito
a vantagem é que apagando o registro vc apaga a imagem, o que gravando apenas o caminho, vc, alem de apagar o registro, precisa do unlink pra apagar o arquivo
a desvantagem é a limitaçao e a complexidade do metodo... a limitaçao do tamanho de um arquivo é muito maior que os 64k de um campo blob
veja um exemplo pratico:
Autor: João Carlos Agostini (---.dsl.telesp.net.br)
Data: 13/06/2003 21:18
Olha achei este script num CD da Geek, acho que não resolve propriamente o que você gostaria de fazer, mas acho que ajuda a achar algum caminho para isso.
################################################
Como adicionar uma imagem ao MySQL?
Primeiramente, vamos criar uma tabela no Banco de Dados:
CREATE TABLE imagens (
codigo INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
formato VARCHAR(255) NOT NULL,
imagem BLOB NOT NULL
);
Pronto, agora iremos criar o script que vai envia-la para o Banco de Dados:
upload.php
<?
$caminho = "/caminho/para/a/pasta/"; // Coloque o caminho do servidor para a pasta onde as imagens vao ficar.
if(empty($file)) {
?>
<form method="POST">
Imagem: <input type="file" name="file"><br>
Formato: <select name="formato">
<option value="gif">Gif</option>
<option value="jpeg">Jpg</option>
</select><br>
<input type="submit" value="Enviar">
</form>
<?
} elseif(!empty($file)) {
$arq = $file_name;
if(move_uploaded_file($file."/".$arq, $caminho."/".$arq)) {
$abre = fopen($caminho."/".$arq, "r");
$le = fread($abre, filesize($caminho."/".$arq));
fclose($abre);
$qr = "INSERT INTO imagens (formato,imagem) VALUES('".$formato."','".addslashes($le)."')";
mysql_query($qr) or die(mysql_error());
} else {
echo "Nao foi possivel enviar a imagem!";
}
}
?>
Agora vamos fazer um script para mostrar a imagem:
imagem.php
<?
$qr = "SELECT * FROM imagens ORDER BY codigo DESC";
$sql = mysql_query($qr);
$l = mysql_fetch_array($sql);
header("Content-type: image/".$l[formato]);
echo stripslashes($l[imagem]);
?>
Pronto, agora e so usufruir do mesmo.
Tutorial por
Fabio Luis Matavelli da Silva
fabio@superphp.com.br
###############################################
๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑
#6
Posted 01/09/2005, 09:39
o seu form precisa do enctype.
[code=auto:0]
<form action="inserir_figura.php" method="post" name="formImg" enctype="multipart/form-data">
[QUOTE]
eu tb cadastro as imagens no bd!! eu acho q seu problema ta no form.
[code=auto:0]
<form action="inserir_figura.php" method="post" name="formImg" enctype="multipart/form-data">
[QUOTE]
eu tb cadastro as imagens no bd!! eu acho q seu problema ta no form.
Edição feita por: rettich, 01/09/2005, 09:40.
#7
Posted 29/10/2017, 10:24
Real Isotretinoin Levitra 10mg En Baisse viagra Oral Amoxil Solution
3g Amoxicillin Oral Generic Cod Only Stendra In Internet No Doctor Boston viagra Doryx Bacterial Infections Buying Low Price Pharmacy On Line
Stendra Over Night Low Price Overseas Store Acheter Du Viagra Sur Paris En Pessac viagra Free Shipping Zentel Best Website Tablets Amex Accepted Mejor Tuenti Para Tomar Propecia
3g Amoxicillin Oral Generic Cod Only Stendra In Internet No Doctor Boston viagra Doryx Bacterial Infections Buying Low Price Pharmacy On Line
Stendra Over Night Low Price Overseas Store Acheter Du Viagra Sur Paris En Pessac viagra Free Shipping Zentel Best Website Tablets Amex Accepted Mejor Tuenti Para Tomar Propecia
#8
Posted 29/10/2017, 10:58
Propecia Sale Drugstore Canadian Med 24h viagra online pharmacy Vente Cialis Generique Andorre Vademecum Y Propecia
Nolvadex Effets Secondaires Order Now On Line Doxycycline Treatment For Itching Rash Amoxicillin Reaction levitra and cialis online Frontal Baldness Propecia Male Pattern Hair Loss Kamagra Oral Jelly Australia In Linea Di 25 Mg Di Sildenafil
Nolvadex Effets Secondaires Order Now On Line Doxycycline Treatment For Itching Rash Amoxicillin Reaction levitra and cialis online Frontal Baldness Propecia Male Pattern Hair Loss Kamagra Oral Jelly Australia In Linea Di 25 Mg Di Sildenafil
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)