Jump to content

Recommended Posts

Posted

Boas...

tou com duvidas em colocar uma inserir uma imagem no BD.

Eu pretendo escolher a imagem que eu quero num formulário para inserir a imagem na base de dados.

aqui fica o meu código.

<form action="inserir.php" method="POST">
	<table  width="100" height="250">
		<tr>
			<td width=250>         Nome</td>
			<td> <input type="text" name="Nome" size="30"/>*</td>
		</tr>

		<tr>
			<td width=250>       &nbspDescrição</td>

			<td> <input type="textarea" name="descricao" value="descricao" size="200"/>*</td>
		</tr>

		<tr>
			<td width=250>         Imagem</td>
			<td><input type="file" name="imagem" id="imagem" /></td> 
		</tr>

		<table  width="100" height="10" >	
	<tr>
	</tr>
	</table>
</form>


$Nome=$_POST['Nome'];
	$descricao=$_POST['descricao'];
	$Imagem=$_files["Imagem"];
	//$Pass=$_POST['pass'];





	echo $sql="INSERT INTO fogo (Nome,descricao,Imagem) VALUES ('$Nome','$descricao','$Imagem')";

ele consegue inserir todos os campos, menos a imagem...

algem me poderá dizer o que  fiz mal e como posso corrigir?

Posted

Bom dia,

No formulário falta-te o enctype="multipart/form-data".

Ficará:

<form action="inserir.php" method="POST" enctype="multipart/form-data">

Esse código abaixo do form é o que está no inserir.php, correcto? É que tens o form a apontar para a página inserir.php mas depois tens esse código em baixo.

Fazendo o POST da imagem e se queres guardar o nome da imagem coloca:

$imagem = $_FILES["imagem"]["name"];

Depois para mover o ficheiro tens que utilizar a função move_uploaded_file(), eu faço uso de uma função que fiz:

function saveUploadedFileToCurrentPHPFolder (){      
               //patch absoluta do ficheiro na origem        
                $origin=$_FILES["imagem"]['tmp_name'];     
                //Onde está uploads é o nome da pasta que queres que a imagem vá
                $destination="uploads/".$_FILES["imagem"]["name"];  //path relativa do ficheiro, no directório corrente
                move_uploaded_file($origin, $destination); //move o ficheiro
                return $destination;
} //saveUploadedFileToCurrentPHPFolder
       
$whereIsTheSavedFile = saveUploadedFileToCurrentPHPFolder('imagem');

E entâo depois a query.

Cumprimentos,

AndreLC

echo ($knowledge != $sharing) ? "Serves no purpose!" : "Thank you for your help. It was very precious.";

Posted

tou com duvidas em colocar uma inserir uma imagem no BD.

Eu pretendo escolher a imagem que eu quero num formulário para inserir a imagem na base de dados.

não é boa política guardar a imagem na base de dados.

o que normalmente se faz é guardar o ficheiro no servidor tendo uma referência na base de dados (nome original, nome no servidor)

vê o exemplo dado para ver como se faz

IRC : sim, é algo que ainda existe >> #p@p
Posted

antes de mais obrigado pelas respostas...

Sim, agora também fiquei com a ideia que não é boa politica guardar a imagem na BD, acho que é melhor guardar o nome da imagem na bd, e guardar a imagem numa pasta a parte, e é isso que o exemplo do AndreLC me está a dizer para fazer, pelo menos foi o que eu percebi.. xD

Copiei o código e alterei o necessário, (penso eu), mas isto dei-me uma serie de erros com a variável $imagem dizendo que a variável estava indefinida.

Aqui fica o código que eu teho actualmente e os erros, talvez vos possa ajudar a ajudarem-me.

mysql_select_db("teste2", $con);
	$Nome=$_POST['Nome'];
	$descricao=$_POST['descricao'];
	//$Imagem=$Imagem["Imagem"];
	//$Pass=$_POST['pass'];
	$imagem = $_FILES["imagem"]["name"]; //LINHA17

function saveUploadedFileToCurrentPHPFolder (){      
               //patch absoluta do ficheiro na origem        
                $origin=$_FILES["imagem"]['tmp_name'];      //LINHA 21
                //Onde está uploads é o nome da pasta que queres que a imagem vá
                $destination="C:\xampp\htdocs\siphp\PRAP\testes2/imagens".$_FILES["imagem"]["name"];  //path relativa do ficheiro, no directório corrente //LINHA23
                move_uploaded_file($origin, $destination); //move o ficheiro
                return $destination;
} //saveUploadedFileToCurrentPHPFolder
       
$whereIsTheSavedFile = saveUploadedFileToCurrentPHPFolder('imagem');


	echo $sql="INSERT INTO fogo (Nome,descricao,Imagem) VALUES ('$Nome','$descricao','$Imagem')"; //LINHA31
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

Erros:  :wallbash:

Notice: Undefined index: imagem in C:\xampp\htdocs\siphp\PRAP\testes2\inserir.php on line 17

Notice: Undefined index: imagem in C:\xampp\htdocs\siphp\PRAP\testes2\inserir.php on line 21

Notice: Undefined index: imagem in C:\xampp\htdocs\siphp\PRAP\testes2\inserir.php on line 23

Notice: Undefined variable: Imagem in C:\xampp\htdocs\siphp\PRAP\testes2\inserir.php on line 31

INSERT INTO fogo (Nome,descricao,Imagem) VALUES ('gds','descricao','')

Posted

O PHP é case sensitive. Logo $imagem VS $Imagem, são variáveis distintas.

Na query tens $Imagem e deveria ser $imagem.

Ali onde tens aquele caminho todo para onde queres que a imagem vá, bastará somente "imagens", isto se usares caminhos relativos...

echo ($knowledge != $sharing) ? "Serves no purpose!" : "Thank you for your help. It was very precious.";

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.