Ir para conteúdo

POWERED BY:

Arquivado

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

renatosilva94

Salvar Fotos em Diretorio com Id do usuário

Recommended Posts

Bom galera, mais cedo com a ajuda do pessoal do forum consegui resolver meu problema de upload de fotos e armazenar o link no banco, porém estava salvando em uma pasta normal, eu gostaria de criar uma pasta para cada usuário quando ele postar a foto... tipo já existe a pasta Fotos/Perfil e queria que se por exemplo o usuário 14 estivesse upando uma foto fosse criada a pasta Fotos/Perfil/14

Segue abaixo meu código sendo que ja tentei usar comandos mkdir, porém sem sucesso.

 

 

<?php
$link = $_FILES['FotoPerfil']['name'];
session_start();
$idusuario = $_SESSION['id'];
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.'/'.$link);
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>';
}
}

 

Este é o erro dizendo que o diretório não existe e ai fica a duvida, como cria-lo ?

 

erro.pngObrigado por toda ajuda :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma sugestão: não faça isso não, é um "pecado", separe as coisas (html, php, js).

if (empty($link)) {
    echo '<script>'
        .' alert ("Por favor selecione uma imagem."); '
        .' history.go(-1);'
        .'</script>';
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi meu problema, era só colocar

 

if(!is_dir('../Fotos/Perfil/'.$_SESSION['id'].'/')){
mkdir ('../Fotos/Perfil/'.$_SESSION['id'].'/');
}
move_uploaded_file($_FILES['FotoPerfil']['tmp_name'],'../Fotos/Perfil/'.$_SESSION['id'].'/'.$link);
obrigado :)

outro porém, como eu pego a variavel da pasta do usuário para poder mostrar no <img src>? sei que é com o echo

Compartilhar este post


Link para o post
Compartilhar em outros sites

mkdir("/path/to/my/dir", 0755);

Recomendo que leia o manual antes de saber o que essa ou aquela função faz!

 

O modo padrão é 0777, que significa o acesso mais abrangente possível. :devil:

 

http://php.net/manual/pt_BR/function.mkdir.php

 

 

 

outro porém, como eu pego a variavel da pasta do usuário para poder mostrar no <img src>? sei que é com o echo

<img src"../Fotos/Perfil/<?php echo $id .'/'.$foto ?>">

OR

 

<img src"../Fotos/Perfil/<?=$id .'/'.$foto ?>">

OR

 

echo "<img src='../Fotos/Perfil/{$id}/{$foto} ?>'>";

Compartilhar este post


Link para o post
Compartilhar em outros sites
mkdir("/path/to/my/dir", 0755);

Recomendo que leia o manual antes de saber o que essa ou aquela função faz!

 

O modo padrão é 0777, que significa o acesso mais abrangente possível. :devil:

 

http://php.net/manual/pt_BR/function.mkdir.php

 

 

<img src"../Fotos/Perfil/<?php echo $id .'/'.$foto ?>">

OR

 

<img src"../Fotos/Perfil/<?=$id .'/'.$foto ?>">

OR

 

echo "<img src='../Fotos/Perfil/{$id}/{$foto} ?>'>";

Obrigado cara, eu conheço o mkdir e suas permissões de escrita, leitura e execução, vi isso faz tempinho ja...

Mas só tem um problema...

Como tu pode ver meu página de perfil chama o upload da foto, ou seja, a variavel responsavel por "armazenar" a foto ta na pagina uploadFotoPerfil.php e eu quero mostrar essa foto no menu fixo que é fixos/fotoUsuario.php (que vai ser posto no perfil pelo include)

 

fotoUsuario.php

 

<div class="fotoUsuario">

<?php if($_SESSION['id'] == $_GET['id']){
$idusuario = $_SESSION['id'];
?>
<form action="Classes/uploadFotoPerfil.php" method="POST" enctype="multipart/form-data">
<input type="file" name="FotoPerfil">
<input type="submit" value="Enviar" name="Enviar">
</form>
<?php
}
?>
<img src"../Fotos/Perfil/<?php echo $idusuario .'/'.$link ?>">
</div>

Sim, tem alguns erros pq eu preciso mostrar essa opção somente quando o id for igual ao id da sessão e ainda preciso fazer com que esse botão desapareça quando a foto estiver lá...

 

e o uploadFotoPerfil.php

 

 

<?php

$link = $_FILES['FotoPerfil']['name'];
session_start();
$idusuario = $_SESSION['id'];
if(!is_dir('../Fotos/Perfil/'.$_SESSION['id'].'/')){
mkdir ('../Fotos/Perfil/'.$_SESSION['id'].'/');
}
move_uploaded_file($_FILES['FotoPerfil']['tmp_name'],'../Fotos/Perfil/'.$_SESSION['id'].'/'.$link);
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();
$idfoto = $objDAL->salvaFotoPerfil($objTO);
if($idfoto > 0){
include 'TO/EmpresaFotoTO.php';
$objEFTO = new EmpresaFoto();
$objEFTO->setIdFoto($idfoto);
$objEFTO->setIdUsuario($idusuario);
include 'DAL/EmpresaFotoDAL.php';
$objEFDAL = new EmpresaFotoDAL();
if($objEFDAL->salvaFotoEmpresaPerfil($objEFTO)){
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>';
}
}
}

 

tabela foto tem

 

idusuario

link

 

tabela relacional empresa_foto

 

idusuario

idfoto

 

alguma outra ideia?

e sim, as fotos estão sendo salvas na tabela relacional...

Compartilhar este post


Link para o post
Compartilhar em outros sites

de estuda aqui, não há nada de complicado, basicamente if,

Sobre sua classe vou me abster...

off

Eu vejo problemas! - Com que frequência? - Todo o tempo!

 



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.