Jump to content
Fórum Script Brasil
  • 0

Problema com diretorio


guirimst

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...