Ir para conteúdo

POWERED BY:

Arquivado

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

renatosilva94

Upload de Fotos e Salvar Path no Banco

Recommended Posts

Bom dia novamente pessoal, estou tentando fazer o upload de fotos e salvar o CAMINHO no banco pra posteriormente poder mostra-lá.

 

Tenho a classe DAL

 

<?php

class FotoDal {
public function __construct() {}
public function salvaFotoPerfil($obj) {
include 'incConecta.php';
$str = 'INSERT INTO foto(link) VALUES ('
. '"' . $obj->getFotoEmpresaPefil() . ')';
$query = mysqli_query($conecta, $str);
if ($query) {
return true;
} else {
return false;
}
}
public function salvaFotoAlbum($obj) {
include 'incConecta.php';
$str = 'INSERT INTO foto(link) VALUES ('
. '"' . $obj->getFotoEmpresaAlbum() . ')';
$query = mysqli_query($conecta, $str);
if ($query) {
return true;
} else {
return false;
}
}
public function salvaFoto360($obj) {
include 'incConecta.php';
$str = 'INSERT INTO foto(link) VALUES ('
. '"' . $obj->getFotoEmpresa360() . ')';
$query = mysqli_query($conecta, $str);
if ($query) {
return true;
} else {
return false;
}
}
}

 

A Classe TO

 

<?php

class FotoTO {
private $Id;
private $Link;
public function __construct () {}
// MÉTODOS SET
public function setId($idfoto) {
$this->Id = $idfoto;
}
public function setLink($link) {
$this->Link = $link;
}
//METODOS GET
public function getId() {
return $this->Id;
}
public function getLink() {
return $this->Link;
}
}

 

Minha tabela do banco tem só o idfoto e link

Criei uma pasta no servidor chamada Fotos e dentro dela tem Perfil e FotoAlbum, ai quero separar por id's do usuário, tipo... ele vai upar uma foto e cria Fotos/Perfil/14(idusuario)/ e salva a foto aqui :)

 

E estou com dificuldade para criação do código, já tentei de várias formas e procurei em várias páginas do google e quase nenhum funcionou, e os que funcionaram não salvaram a imagem no banco, alguém conhece uma solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

normalmente que eu saiba as pessoas salvam as fotos por pastas que tenham o data, ex:

 

/fotos/2014/11/asdarsdgsdg.jpg

/fotos/2014/12/asdfy5ughg.jpg
/fotos/2015/01/asdars4663gg.jpg
Com isso você só precisa salvar a data que foi enviada a foto e o nome do arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

normalmente que eu saiba as pessoas salvam as fotos por pastas que tenham o data, ex:

 

/fotos/2014/11/asdarsdgsdg.jpg

/fotos/2014/12/asdfy5ughg.jpg
/fotos/2015/01/asdars4663gg.jpg
Com isso você só precisa salvar a data que foi enviada a foto e o nome do arquivo.

 

sim, mas preciso armazenar o link dela no banco, e já tentei de várias formas sem sucesso...

Tem uma biblioteca bem legal para manipular imagens que pode facilitar este seu trabalho - https://github.com/Intervention/image

cara, pra ser sincero não entendi nada dessa biblioteca... tenho uma semana pra entregar o trabalho e queria somente que ela fosse armazenada na pasta e salvasse o link no bd .-. tem algum jeito mais fácil?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade você só precisa salvar o path da imagem no db.

nome-imagem.jpg

e criar um código que cria as pastas automaticamente

/Fotos/Perfil/14/

e mover o arquivo com move_upload_file para este diretório, depois é só passar o endereço na src da tag <img>


echo "<img src="/Fotos/Perfil/{$id}/{$nome_foto}">";

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Na realidade você só precisa salvar o path da imagem no db.

nome-imagem.jpg

e criar um código que cria as pastas automaticamente

/Fotos/Perfil/14/

e mover o arquivo com move_upload_file para este diretório, depois é só passar o endereço na src da tag <img>

echo "<img src="/Fotos/Perfil/{$id}/{$nome_foto}">";

sim sim, eu criei esse código, mas não salva no banco de maneira alguma

 

 

<?php
include 'incConecta.php';
$filename=$_FILES['FotoPerfil']['name'];
$filetype=$_FILES['FotoPerfil']['type'];
if($filetype=='image/jpeg' or $filetype=='image/png' or $filetype=='image/gif')
{
move_uploaded_file($_FILES['FotoPerfil']['tmp_name'],'../Fotos/Perfil/'.$filename);
$link="../Fotos/Perfil/".$filename;
$sql="INSERT INTO foto VALUES('$link')";
$query = mysqli_query($conecta, $sql);
if ($query) {
return true;
} else {
return false;
}
}

 

esse código salva a imagem na PASTA mas não o link no banco, e eu preciso salvar esse link no banco pra poder fazer exatamente isso, retornar a imagem usando os atribuitos img e echo

Opa, consegui, eu estava escrevendo uma função nada a ver era um getLink e eu inventei um nome absurdo, obrigado a todos :)

Um ultimo problema agora, ele está salvando o link no banco mas não está jogando para a pasta, alguém sabe oque pode ser?

 

 

<?php

$link = $_FILES['FotoPerfil']['name'];
if (empty($link)) {
echo '<script>'
.' alert ("Por favor selecione uma imagem."); '
.' history.go(-1);'
.'</script>';
}else{
include 'TO/FotoTO.php';
$objTO = new FotoTO();
$objTO->setLink($link);
include 'DAL/FotoDAL.php';
$objDAL = new FotoDAL();
move_uploaded_file($_FILES['FotoPerfil']['tmp_name'],'../Fotos/Perfil/'.$idusuario.'/');
if ($objDAL->salvaFotoPerfil($objTO)){
echo '<script>'
.' alert ("Foto Salva com Sucesso"); '
.' location.href = "../pagInicial.php";'
.'</script>';
}else{
echo '<script>'
.' alert ("Erro ao efetuar o upload"/); '
.' history.go(-1);'
.'</script>';
}
}

Resolvido, coloquei a variavel $link, pois a usuario não estava definida... obrigado :)

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.