Good afternoon, I have a problem saving the image to the database. It happens that the image that I do update goes to the folder where it should, but in the database does not save neither the name nor the path, follow the codes below
public function update()
{
$sql = new Sql();
$results = $sql->select("CALL sp_products_update (:CodProduto, :NomeProduto, :ValorProduto, :MargemLucro, :ValorVendaProduto, :QntProduto, :ImagemProduto, :QntParcelas, :ValorParcela, :Descricao, :Categoria)", array(
":CodProduto"=>$this->getCodProduto(),
":NomeProduto"=>$this->getNomeProduto(),
":ValorProduto"=>$this->getValorProduto(),
":MargemLucro"=>$this->getMargemLucro(),
":ValorVendaProduto"=>$this->getValorVendaProduto(),
":QntProduto"=>$this->getQntProduto(),
":ImagemProduto"=>$this->getImagemProduto(),
":QntParcelas"=>$this->getQntParcelas(),
":ValorParcela"=>$this->getValorParcela(),
":Descricao"=>$this->getDescricao(),
":Categoria"=>$this->getCategoria()
));
$this->setData($results[0]);
}
method to check if the photo exists
//checar a foto
public function checkPhotos()
{
if (file_exists(
$_SERVER["DOCUMENT_ROOT"] . DIRECTORY_SEPARATOR .
"res" . DIRECTORY_SEPARATOR .
"site" . DIRECTORY_SEPARATOR .
"img" .DIRECTORY_SEPARATOR .
"products" . DIRECTORY_SEPARATOR .
$this->getCodProduto() . ".jpg"))
{
$url = "/res/site/img/products/" . $this->getCodProduto() . ".jpg";
} else{
//RETORNAR FOTO PADRAO
$url = "/res/site/img/padrao.jpg";
}
return $this->setImagemProduto($url);
}
and method to save the photo
//METODO PARA SALVAR A FOTO
public function setPhoto($file)
{
//detectar o tipo de extensao do arquivo
$extension = explode('.', $file["name"]);
$extension = end($extension);
switch($extension){
case "jpg":
case "jpeg":
$image = imagecreatefromjpeg($file["tmp_name"]);
break;
case "gif":
$image = imagecreatefromgif($file["tmp_name"]);
break;
case "png":
$image = imagecreatefrompng($file["tmp_name"]);
break;
}
$dist = $_SERVER["DOCUMENT_ROOT"] . DIRECTORY_SEPARATOR .
"res" . DIRECTORY_SEPARATOR .
"site" . DIRECTORY_SEPARATOR .
"img" .DIRECTORY_SEPARATOR .
"products" . DIRECTORY_SEPARATOR .
$this->getCodProduto() . ".jpg";
imagejpeg($image, $dist);
imagedestroy($image);
$this->checkPhotos();
}
follows the html of the input file
<label for="file">Foto</label>
<input type="file" class="form-control" id="file" name="ImagemProduto">
Follow the procedure
CREATE PROCEDURE sp_products_save (
pnomeproduto VARCHAR(100),
pvalorproduto decimal(10,2),
pmargemlucro decimal(10,2),
pvalorvenda decimal(10,2),
pquantidade INT,
pcodfornecedor INT,
pqntparcelas INT,
pvalorparcela DECIMAL(10,2),
pdescricao VARCHAR(255),
pcategoria VARCHAR(25)
) BEGIN
declare vcodproduto INT;
INSERT INTO produto (NomeProduto,ValorProduto,MargemLucro,
ValorVendaProduto,QntProduto,CodFornecedor,QntParcelas,ValorParcela,Descricao,Categoria)
VALUES (pnomeproduto, pvalorproduto,pmargemlucro,pvalorvenda,pquantidade,pcodfornecedor,
pqntparcelas,pvalorparcela,pdescricao,pcategoria);
SET vcodproduto = LAST_INSERT_ID();
SELECT * FROM produto WHERE CodProduto = vcodproduto;
END $$
and in the database the field ImageProduct is varchar