Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com diretorio


guirimst

Pergunta

Boa noite a todos,

Bom, meu problema é o seguinte, tenho uma area administrativa que cadastra fotos para ser exibida com a galeria ligthbox. E na area administrativa é salva numa pasta chamada "fotos", ate aí tudo bem, é feito o upload, grava na pasta a imagem e no banco de dados também. Mas estou precisando que estas imagens sejam exibidas na index do site e não estou conseguindo chama-las la:

MEUSITE/adm/administração/AREAADMINISTRATIVA

Então queria que as fotos armazenadas na area administrativa fosse pra index. La na index o codigo é este:

<?
foreach($body as $news)
{
$pageid = $news[0];
$titulo = $news[1];
$materia = $news[2];
$datap = $news[3];
?>
<tr>
<td><h2><?=ucfirst($titulo)?> <p class="data"><?=$datap?> </h2>
<div class="buttonwrapper">
<a class="squarebutton" style="margin-left: 480px" href="album.php"><span>Retornar à Galeria</span></a>
</div>
</td>
</tr>
<tr>
<td><p> </p><?=$materia?><p> </p></td>
</tr>
<?
}
print "</table><p> </p><p> </p>";
print "<table id=\"gallery\">";

$news = new Crud("fotos"); 
$body = $news->executeSelectToArray("urlfoto|idfoto|idmateria","idmateria = $pageid");
if($body != 0)
{
$v = 0;
foreach($body as $news)
{
$v ++;
$urlfoto = $news[0];
$idfoto = $news[1];
$idmateria = $news[2];
if($v == 4 || $v == 0){ print "<tr>"; $v = 1;}
?>
<td >
<div class="photo sample2" id="<?=$idfoto?>">
<a href="<?=$urlfoto?>" rel="lightbox[roadtrip]"><span></span><img src="thumb.php?img=<?=$urlfoto?>" width="180" height="130" alt="clique para ampliar" /></a>
</div>
</td>
<?
if($v == 4 || $v == 0){print "</tr>"; $v = 1; }
}
}
?>

Onde esta em vermelho $news = new Crud("fotos"); é a pasta das fotos,o ligthbox esta aparecendo mas as fotos precisavam vir e eu não estou conseguindo chama-las, já tentei links e tudo mais e nada.

Coloquei a mesma pasta "fotos" la index e tentei chamar as fotos e nada

Poderia me ajudar novamente Willian?? Agradeço desde já

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Bom mJi, tentei colocar também da maneira que voce disse e não apareceu nada.

Mas analisando o banco de dados, vi que no campo URLFOTO esta sendo gravado da seguinte maneira:

fotos/4459a8gbNOMEFOTO.jpg

Então quer dizer que o nome da pasta também esta sendo gravado na tabela no banco de dados.

Agora o codigo que esta chamando a pasta FOTOS, que é $news = new Crud("fotos"); tentei mudar também colocando o caminho faltando apenas o nome da pasta com a esperança dele ser chamado por já estar no banco e nada também.

Agora , Masski eu fazendo apenas o teste com as paginas em um diretorio somente, da certo, funciona perfeitamente, mas quando coloco no diretorio administrativo para cadastro e as fotos serem apresentadas na index, saltando 3 pastas como diretorio, não da certo :(

Poderiam me ajudar novamente, ficaria grato, agradeço novamente

Link para o comentário
Compartilhar em outros sites

  • 0

Olá guirimst,

se você está inserindo as imagens de um gerenciador para ser visualizado no site, aconselho a você fazer o upload diretamente na pasta raiz, fora do seu gerenciador. Por ex: se o banco está lendo fotos/4459a8gbNOMEFOTO.jpg, tente jogar as imagens do seu gerenciador pelo upload diretamente na pasta raiz chamada "fotos". Particularmente eu não costumo jogar para o banco o diretório + o nome da imagem, pois se houver alguma mudança no sistema, daria um certo trabalho de mudar, coloco apenas o nome da imagem e através do HTML eu crio o diretório.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Olá MTavares, obrigado por responder ao tópico.

Bom, mas nesse gerenciador na area administrativa, eu tenho uma visualização das fotos em uma galeria, para ver como estão e poder edita-las, marca-las para remoção e outras configurações. Então se eu fizer upload na index das fotos, ficaria praticamente o mesmo problema, porque precisaria delas na area administrativa.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá guirimst,

então, quando você fizer a upload, bastaria direcionar para uma pasta raíz por segurança, pois se você colocá-la dentro do gerenciador, bastaria o usuário clicar com o lado direito para visualizar o endereço do seu gerenciador e com isso fazer qualquer tentativa de invasão. Particularmente, quando vou inserir qualquer foto pelo gerenciador, jogo para o banco somente o nome da imagem, mas no upload eu coloco assim:

$diretorio = "../fotos/";

Dessa forma as imagens ficarão armazenadas na pasta fotos da pasta raíz e quando o usuário clicar com o lado direito nas fotos, aparecerão dessa forma:

meusite/fotos

e não

meusite/adm/fotos

Mesmo você jogando para a pasta raíz, você poderá editá-la, excluí-la, etc.

Fica aí a dica ;)

abs.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite MTavares, estive ausente por problemas de saude, so estou vendo agora seu post. Obrigado novamente por responder. Deixa eu ver se entendi, tenho este codigo como sendo o UPLOAD:

<?php

$con = new Conexao("$homeDB");

$larguraMax = 10000; // largura em pixels
$alturaMax  = 10000; // altura em pixels
$tamanhoMax = 10000000; // tamanho em bytes
$formatos   = "pjpeg|jpeg|png|gif|bmp|x-png|jpg"; // extensoes permitidas
# Criando as mensagens de erro
$erro[] = "O tamanho do arquivo enviado é maior que o permitido [".($tamanhoMax/10000)." kb].";
$erro[] = "A largura da imagem é maior que o permitido [$larguraMax pixels].";
$erro[] = "A altura da imagem é maior que o permitido [$alturaMax pixels].";
$erro[] = "O arquivo já existe no diretório.";
$erro[] = "Formato do arquivo não permitido ou inválido, são permitidos:<br> $formatos.";
if(isset($_FILES["fotos"]))
{
    function retira_acentos( $texto )
    {
      $array1 = array(   "á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç"
                         , "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç" );
      $array2 = array(   "a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c"
                         , "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C" );
      return str_replace( $array1, $array2, $texto );
    } 
    
    foreach ($_FILES["fotos"]["name"] as $key => $name) 
    {
        $arquivo   = $_FILES["fotos"];
        #Verificando se a imagem foi enviada
        if(isset($arquivo["name"][$key]) &&  $arquivo["name"][$key] != "" && !empty($arquivo["name"][$key]))
        {
            $dimensoes = @getimagesize($arquivo["tmp_name"][$key]);
            $nomefoto  = strtolower($_FILES["fotos"]["name"][$key]);
            $nomefoto  = retira_acentos($nomefoto);
            # Retirando espacos no nome do arquivo
            $espacos = explode(" ",$nomefoto);
            if(count($espacos) > 1)
            {
                $nomefoto = strtolower(ereg_replace(' ', '_', $nomefoto));
            }        
            # Se o Tamanho do arquivo é permitido
            if($arquivo["size"][$key] > $tamanhoMax)
            {
            # Adiciona o erro no array erros[]
            $tamorig = $arquivo["size"][$key];
            
            $erros[] = "O tamanho do arquivo enviado [$nomefoto] é maior que o permitido [".($tamanhoMax/10000)." kb].";
            }
            # Se a Largura do arquivo é permitida
            if($dimensoes[0] > $larguraMax)
            {
            $erros[] = "A largura da imagem [$nomefoto] é maior que o permitido [$larguraMax pixels].";
            }
            # Se a Altura do arquivo é permitida
            if($dimensoes[1] > $alturaMax)
            {
            $erros[] = "A altura da imagem [$nomefoto] é maior que o permitido [$alturaMax pixels].";
            }
            # Verifica se o arquivo já existe no diretorio
            if(file_exists("fotos/$nomefoto"))
            {
            //$erros[] = "[$nomefoto] $erro[3]";
            }    
            # Verifica se extensao é permitida
            if(preg_match("/^image\/($formatos)$ /", $arquivo["type"][$key]))
            {
                $erros[] = "Formato do arquivo [$nomefoto] não permitido ou inválido, são permitidos:<br> $formatos.";
            }
            # O array erros não tiver nenhum indice o upload é permitido/realizado
            if(!isset($erros))
            {
                $nomeRam = md5(uniqid(time())).$nomefoto;
                $imagem_dir = "fotos/".$nomeRam;
                if(    move_uploaded_file($_FILES["fotos"]["tmp_name"][$key], $imagem_dir))
                {
                    $sucesso[] = "Upload do arquivo [$nomefoto] efetuado com sucesso.";

                    $con = new Conexao("$homeDB");
                    $urlfoto = "fotos/".$nomeRam;

                    $news = new Crud('fotos');

                    $news->insert("idmateria,urlfoto","$id,'$urlfoto'");
                    $news->execute();                
                }
                
            }
        }
        else{
            //$erros[] = "Nenhum arquivo foi enviado.";
        }
    }
    # Verifica se existem erros  no array
    if(isset($erros))
    {
        foreach($erros as $erro)
        {
            echo "<p class ='error'>$erro</p>";
        }
    }
    # Verifica quais imagens tiveram sucesso no upload
    if(isset($sucesso))
    {
        foreach($sucesso as $up)
        {
            echo "<p class='success'>$up</p>";
        }
        echo "<span class=\"hide\" id=\"nomefoto\">$nomeRam</span>";
    }
}
?>
Agora eu devo colocar a pasta FOTOS la na raiz e chamar onde esta sendo pedindo a solicitação? Desta maneira:
if(isset($_FILES["../../../galeria/fotos"]))

Aí faço isto em todos os lugares que irão abrir?

Desculpe minha ignorancia, mas ainda sou iniciante, agradeço novamente se puder me auxiliar

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...