Ir para conteúdo

POWERED BY:

Arquivado

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

Juliana Theodoro

inserir imagem sql

Recommended Posts

ola, estou tentando inserir uma imagem no sql, mais da erro

aparece: Query was empty.

 

na pagina de inserir a foto em html coloquei assim:

Deseja enviar foto

 

 

na de enviar foto:

$CAMPO_FOTO=$_POST["CAMPO_FOTO"];

 

include('conexao.php');

 

$query=("insert into fotos(CAMPO_FOTO) values('$CAMPO_FOTO')");

$resultado=mysql_query($consulta) or die(mysql_error());

echo "Dados inseridos com sucesso.";

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o campo foto for um arquivo, você deve usar:

$_FILES['CAMPO_FOTO']

ao invés de

$_POST['CAMPO_FOTO']

O input também deve ser do tipo file e o formulário deve conter o atributo enctype="multipart/form-data":

<form enctype="multipart/form-data">


E aqui:

 

Query was empty

 

Deve estar ocorrendo porque sua instrução SQL está na variável $query, e você está tentando executar a partir da variável $consulta. Deveria ser:

 

 

 

include('conexao.php'); 
$query="insert into fotos(CAMPO_FOTO) values('$CAMPO_FOTO')"; 
$resultado=mysql_query($query) or die(mysql_error()); 
echo "Dados inseridos com sucesso.";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa salvar a foto no disco em algum lugar e salvar com esse nome [inline]$CAMPO_FOTO[/inline] aí...

 

http://php.net/move_uploaded_file

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Ola , eu fiz o seguinte :

$CAMPO_FOTO = $_FILES["CAMPO_FOTO"]; 
 
if (!empty($CAMPO_FOTO["name"])) { 
 
// Largura máxima em pixels 
$largura = 10000; 
// Altura máxima em pixels 
$altura = 10000; 
// Tamanho máximo do arquivo em bytes 
$tamanho = 90000; 
 
// Verifica se o arquivo é uma imagem 
if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $CAMPO_FOTO["type"])){ 
$error[1] = "Isso não é uma imagem."; 
} 
 
// Pega as dimensões da imagem 
$dimensoes = getimagesize($CAMPO_FOTO["tmp_name"]); 
 
// Verifica se a largura da imagem é maior que a largura permitida 
if($dimensoes[0] > $largura) { 
$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels"; 
} 
 
// Verifica se a altura da imagem é maior que a altura permitida 
if($dimensoes[1] > $altura) { 
$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels"; 
} 
 
// Verifica se o tamanho da imagem é maior que o tamanho permitido 
if($CAMPO_FOTO["size"] > $tamanho) { 
$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes"; 
} 
 
// Se não houver nenhum erro 
if (count($error) == 0) { 
 
// Pega extensão da imagem 
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $CAMPO_FOTO["name"], $ext); 
 
// Gera um nome único para a imagem 
$nome_imagem = md5(uniqid(time())) . "." . $ext[1]; 
 
// Caminho de onde ficará a imagem 
$caminho_imagem = "/fotos/" . $nome_imagem; 
 
// Faz o upload da imagem para seu respectivo caminho 
move_uploaded_file($CAMPO_FOTO["tmp_name"], $caminho_imagem); 
} 
} 

da erro na linha 59 :

 

move_uploaded_file($CAMPO_FOTO["tmp_name"], $caminho_imagem);

 

acho q tem q colocar o caminho da imagem, e o caminho ftp ou do BD?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é o caminho da imagem que foi recebida.

 

Este caminho estará no campo "tmp_name" da imagem trabalhada.

 

Dado o formulário:

<form action="" method="post" enctype="multipart/form-data">
<label for="foto">
    <span>Sua foto:</span>
    <input type="file" name="foto" />
</label>
<button type="submit">Enviar</button>

Para salvar a foto ficaria assim:

move_uploaded_file($_FILES['foto']['tmp_name'], 'novo/caminho/para/a/foto.jpg');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ser o caminho de uma pasta física no seu servidor. Na função move_uploaded_file(), o que você deve especificar são dois parâmetros:

 

O primeiro, é a foto que você quer fazer o upload, então, você usa:

$_FILES['foto']['tmp_name']


O segundo parâmetro, você só precisa especificar para qual pasta do seu servidor a imagem vai ser enviada.

Por exemplo, você poderia ter uma pasta desta:

 

upload/

 

Então, seu upload no PHP deveria ser algo do tipo:

$nomeDaFoto = uniqid() . "_" . $_FILES['foto']['name'];
move_uploaded_file($_FILES['foto']['tmp_name'], 'upload/' . $nomeDaFoto);

O ideal seria também gravar o nome da foto no banco de dados... Aí para exibir você faria algo do tipo:

 

$query = mysql_query("SELECT foto FROM tabela_fotos");
$result = mysql_fetch_array($query);
$foto = $result['foto'];
<img src="upload/<?php echo $foto; ?>" />

Sugir a você algumas leituras para melhor entendimento:

 

http://ee1.php.net/manual/pt_BR/function.move-uploaded-file.php

http://www.php.net/manual/pt_BR/features.file-upload.post-method.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ser o caminho de uma pasta física no seu servidor. Na função move_uploaded_file(), o que você deve especificar são dois parâmetros:

 

O primeiro, é a foto que você quer fazer o upload, então, você usa:

$_FILES['foto']['tmp_name']

 

O segundo parâmetro, você só precisa especificar para qual pasta do seu servidor a imagem vai ser enviada.

Por exemplo, você poderia ter uma pasta desta:

 

upload/

 

Então, seu upload no PHP deveria ser algo do tipo:

$nomeDaFoto = uniqid() . "_" . $_FILES['foto']['name'];
move_uploaded_file($_FILES['foto']['tmp_name'], 'upload/' . $nomeDaFoto);

O ideal seria também gravar o nome da foto no banco de dados... Aí para exibir você faria algo do tipo:

 

$query = mysql_query("SELECT foto FROM tabela_fotos");
$result = mysql_fetch_array($query);
$foto = $result['foto'];
<img src="upload/<?php echo $foto; ?>" />

Sugir a você algumas leituras para melhor entendimento:

 

http://ee1.php.net/manual/pt_BR/function.move-uploaded-file.php

http://www.php.net/manual/pt_BR/features.file-upload.post-method.php

 

 

Ola, Jonaslhp no banco de dado deve estar como ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ser o caminho de uma pasta física no seu servidor. Na função move_uploaded_file(), o que você deve especificar são dois parâmetros:

 

O primeiro, é a foto que você quer fazer o upload, então, você usa:

$_FILES['foto']['tmp_name']

 

O segundo parâmetro, você só precisa especificar para qual pasta do seu servidor a imagem vai ser enviada.

Por exemplo, você poderia ter uma pasta desta:

 

upload/

 

Então, seu upload no PHP deveria ser algo do tipo:

$nomeDaFoto = uniqid() . "_" . $_FILES['foto']['name'];
move_uploaded_file($_FILES['foto']['tmp_name'], 'upload/' . $nomeDaFoto);

O ideal seria também gravar o nome da foto no banco de dados... Aí para exibir você faria algo do tipo:

 

$query = mysql_query("SELECT foto FROM tabela_fotos");
$result = mysql_fetch_array($query);
$foto = $result['foto'];
<img src="upload/<?php echo $foto; ?>" />

Sugir a você algumas leituras para melhor entendimento:

 

http://ee1.php.net/manual/pt_BR/function.move-uploaded-file.php

http://www.php.net/manual/pt_BR/features.file-upload.post-method.php

 

 

 

é o caminho da imagem que foi recebida.

 

Este caminho estará no campo "tmp_name" da imagem trabalhada.

 

Dado o formulário:

<form action="" method="post" enctype="multipart/form-data">
<label for="foto">
    <span>Sua foto:</span>
    <input type="file" name="foto" />
</label>
<button type="submit">Enviar</button>

Para salvar a foto ficaria assim:

move_uploaded_file($_FILES['foto']['tmp_name'], 'novo/caminho/para/a/foto.jpg');

 

ficou dessa maneira esta certo?

move_uploaded_file($_FILES['CAMPO_FOTO']['tmp_name'], '/cadastro/fotos' . $CAMPO_FOTO);
include('conexao.php');
$query=("insert into fotos(CAMPO_FOTO) values('$CAMPO_FOTO')");
$resultado=mysql_query($query) or die(mysql_error());
echo "Dados inseridos com sucesso.";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui:

 

move_uploaded_file($_FILES['CAMPO_FOTO']['tmp_name'], '/cadastro/fotos' . $CAMPO_FOTO);

Me parece faltar uma barra...Assim:

 

move_uploaded_file($_FILES['CAMPO_FOTO']['tmp_name'], 'cadastro/fotos/' . $CAMPO_FOTO);

A pasta cadastro está no mesmo nível do script que está fazendo o upload? Caso não dê certo, habilite os erros do PHP e mostre aqui a mensagem de retorno. Coloque isso no início do seu script:

 

 

error_reporting(E_ALL);
ini_set( 'display_errors','1');

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Aqui:

 

move_uploaded_file($_FILES['CAMPO_FOTO']['tmp_name'], '/cadastro/fotos' . $CAMPO_FOTO);

Me parece faltar uma barra...Assim:

 

move_uploaded_file($_FILES['CAMPO_FOTO']['tmp_name'], 'cadastro/fotos/' . $CAMPO_FOTO);

A pasta cadastro está no mesmo nível do script que está fazendo o upload? Caso não dê certo, habilite os erros do PHP e mostre aqui a mensagem de retorno. Coloque isso no início do seu script:

 

 

error_reporting(E_ALL);
ini_set( 'display_errors','1');

 

 

erro:

 

 

Notice: Undefined variable: CAMPO_FOTO in /home/u233174493/public_html/cadastro/enviarfoto.php on line 16 Warning: move_uploaded_file(/cadastro/fotos/): failed to open stream: No such file or directory in /home/u233174493/public_html/cadastro/enviarfoto.php on line 16 Warning: move_uploaded_file(): Unable to move '/tmp/phpJIdXlA' to '/cadastro/fotos/' in /home/u233174493/public_html/cadastro/enviarfoto.php on line 16 Notice: Undefined variable: CAMPO_FOTO in /home/u233174493/public_html/cadastro/enviarfoto.php on line 20 Dados inseridos com sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. Você criou a(s) pasta(s) no servidor?

2. As pastas estão com chmod 777?

 

 

erro:

 

 

Notice: Undefined variable: CAMPO_FOTO in /home/u233174493/public_html/cadastro/enviarfoto.php on line 16

 

Você deve definir sua variável CAMPO_FOTO:

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

E no seu formulário, o campo onde você escolhe a foto que vai fazer o upload deve ter o mesmo nome: "CAMPO_NOME"

<input type="file" name="CAMPO_FOTO" />

Dá uma relida nos posts porque acho que você está deixando passar algumas coisas... E volte aqui com o resultado.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tira a barrinha do começo:

 

 

move_uploaded_file($_FILES['CAMPO_FOTO']['tmp_name'], 'cadastro/fotos/' . $CAMPO_FOTO)
.

 

Como o @Jonaslhp disse, não se esqueça de criar o diretório 'cadastro' e o diretório 'fotos' dentro deste.

 

Uma coisa que me deixou intrigado é que você disse que está gravando no banco corretamente, mas as mensagens de erro mostram que não há nada em [inline]$CAMPO_FOTO[/inline].

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.