• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

RicardoR

[PHP] Upload/Ver pastas/ficheiros e download destes + explicações

16 posts in this topic

Upload/Ver pastas/ficheiros + Explicações

Este código já tem marcada presença neste armazém mas vou fazer desta vez uma explicação mais promenorizada dos passos no decorrer deste código.

Para além do upload via estar a visualização de pastas/ficheiros e download destes mesmos.O código pode ser manuzeado com o vosso toque pessoal gráfico,recomendo no que interfere só a este código css.

Página de formulário.

formulario.html

<form action="upload.php" method="POST" enctype="multipart/form-data"> 
<p>Ficheiro:</font></p>
  <p>
    <input type="file" name="file">
   <br>
    <br />
    <input type="submit" value="Enviar">
    </p>
</form>

Formulário simples:

A página upload.php trata do formulário- código abaixo.

O que vos pode causar impressão é o enctype="multipart/form-data .Isto liberta o tipo de ficheiros para todos os tipos.

O input type="file" serve para abrir a janela onde procuras o ficheiro.

Código  igual ao do outro sitema de uploads.

upload.php

$destino = "directoria"; //Pasta onde serao armazenados os uploads

$mandar = $destino."/".$file_name; //isto introduz a barra no directorio exemplo: directoria/ de seguido do nome do ficheiro
if(!move_uploaded_file($file, $mandar)) { //move o ficheiro para a directoria
   echo "O ficheiro não pode ser enviado.<br>"; //caso nao tenha sido enviado
echo"<a href= formulario.html>Voltar</a>font>";
}
else { //se foi
   echo "O ficheiro foi enviado com sucesso.<br>";
   echo "O arquivo enviado foi este:   $file"; //variavel file correspondente ao ficheiro enviado
}
echo"<a href= formulario.html>Voltar</a>font>"; // voltar a pagina de formulário
?>

Agora página que mostra a ficheiros ,directoria e sub-pastas:

mostrar.php

<?php 

$dir = "directoria"; //definir directoria

$sub = ($_GET['dir']); // sub-pastas
$path = 'directoria'; //definam aqui tambem a directoria
$path = $path . "$sub"; 
$dh = opendir($path); //abre directoria
while (($file = readdir($dh)) !== false) {
    if($file != "." && $file != "..") { // se ha ficheiro e/ou pasta
            if (substr($file, -4, -3) =="."){ // se é um ficheiro
            echo " $file - <a href=directoria$sub/$file>Download</a>"; // nome e download do ficheiro 
//Nao se esquecam de substituir em cima onde está escrito directoria pela directoria
            }else{            
        echo " <a href='?dir=$sub/$file'>$file</a><br />"; //caso seja pasta
          }
        $i++;
    }
}
closedir($dh); //fechar 

}?> 

Espero que não haja dúvidas e que tenham gostado :)

Abraço

0

Share this post


Link to post
Share on other sites

onde esta a linha $destino = "directoria"; //Pasta onde serao armazenados os uploads

posso colocar ai o path e mandar escrever para a BD??

preciso de fazer um formulario com alguns elementos e incluir a foto.

0

Share this post


Link to post
Share on other sites

onde esta a linha $destino = "directoria"; //Pasta onde serao armazenados os uploads

posso colocar ai o path e mandar escrever para a BD??

preciso de fazer um formulario com alguns elementos e incluir a foto.

Caso queiras escrever na BD tens de ter um código diferente, este é apenas para o servidor.

Para mostrar fotos também dever ter um código diferente apenas para a aparência das mesmas.Se tentares com este vai-te fazer o download.

Queres fazer exactamente o quê que ainda não percebi :D

Abraço

0

Share this post


Link to post
Share on other sites

O que eu quero fazer é um formulario que vai escrever para uma tabela (neste caso pilotos)

Para alem de ter:

Nome

Morada

Telefone

bla bla bla

ter tb a foto da pessoa.

Pelo que me disseram o ideal é escrever nesse campo a path onde se encontra a foto e nao inserir a foto na BD.

0

Share this post


Link to post
Share on other sites

No teu caso como é uma foto de um perfil o código acima não te vai dar muito jeito.

Se fosse a ti enviava tudo inclusive a foto para a bd, assim seria muito mais fácil depois para carregar.

Uma ideia para não sobrecarregar a bd é não colocar efectivamente as fotos na bd mas sim hospeda-las em sites próprios para isso, como é o caso do ImageHack, se vires há muitos forúns a usar este método.Este método reduz-te o  espaço ocupado e é práctico é só colocar o código que eles te dão depois.

Abraço

0

Share this post


Link to post
Share on other sites

como e k eu, utilizando este codigo posso fazer o upload de imagens so que para a base de dados?

cumps

0

Share this post


Link to post
Share on other sites

mas para armazenar os ficheiros temos de ter uma base de dados não é? E quais sao os atributos da Bse de dados?

desculp a ignorância

obg ;)

0

Share this post


Link to post
Share on other sites

mas para armazenar os ficheiros temos de ter uma base de dados não é? E quais sao os atributos da Bse de dados?

desculp a ignorância

obg ;)

Lol não se armazenam ficheiros em bases de dados.

0

Share this post


Link to post
Share on other sites

Lol não se armazenam ficheiros em bases de dados.

Na verdade, podes armazenar. Não é é prático nem eficiente.
0

Share this post


Link to post
Share on other sites

Na verdade, podes armazenar. Não é é prático nem eficiente.

Nunca disse que não era possivel ;)

0

Share this post


Link to post
Share on other sites

este códigos so servem para download e Upload

0

Share this post


Link to post
Share on other sites

Não há problema nenhum em guardar o conteudo de um ficheiro numa base de dados numa coluna em formato binário.

Até acho prático para um site de legendas por exemplo.

O pessoal envia o seu ficheiro srt, esse ficheiro é serializado para o seu campo da BD com os restantes dados.

E qd alguém quer fazer o download, é deserializado para um ficheiro srt e enviado pelo response.

É uma situação prática onde se pode guardar ficheiros numa BD.

0

Share this post


Link to post
Share on other sites

O q me parece q foi feito nesse caso foi guardar na base de dados a localização do ficheiro.

Quando tu carregas no teu link p download, isso vai à base de dados perguntar onde tá o ficheiro, e depois é enviado esse ficheiro.

0

Share this post


Link to post
Share on other sites

Bem queria saber se e possível um script assim php

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now