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

nuno_couto

Upload através de form, com script PHP e barra de progresso...

10 mensagens neste tópico

Boas...

Tenho um sistema de upload com form html e script em php.

Os uploads funcionam bem mas num ficheiro grande, o browser fica "parado" enquanto o ficheiro é enviado.

Era interessante colocar uma barra de progresso, mas não sei em que linguagem pode ser, para se integrar com o PHP.

Já vi algumas coisas mas tudo feito em PERL e a exigir "instalação" no servidor. Suponho que seja possível fazer isso com algum script introduzido ou no php ou no html que contem o form.

Obrigado. Fiquem bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso com php axo k n da pa fazer, pk tu com php, apenas processas o k foi submetido depois de o ficheiro ter sido enviado para o servidor e não duarnte, logo não tens maneira de verificar quantos bytes do ficheiro já foram enviados... penso eu que não dá.

pode é dar com javascript, se javascript suportar envio de ficheiros, se calhar por ai dá pa fazeres a tal barra de progresso... ou então uma outra possiblidade é colocares no browser mal o utilizador pressione o botão de submeter, avisares de alguma forma que o processo pode demorar e podes colocar um gif animado que se repita so pa o utilizador ter a noção de que o browser está a fazer alguma coisa...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso com php axo k n da pa fazer, pk tu com php, apenas processas o k foi submetido depois de o ficheiro ter sido enviado para o servidor e não duarnte, logo não tens maneira de verificar quantos bytes do ficheiro já foram enviados... penso eu que não dá.

O box.net parece já ter esse sistema, mas não sei ao certo como se faz. Tenta procurar no Hotscripts.com

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com php não acho ser possivel.

Mas já ouvi falar num script em JSP.

Mas nem todos os servidores suportam JSP como PHP.

Boa sorte...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Teria lógica em java, mas eu nao percebo nada. O java iria "substituir" o form em html e iria fazer a barra de progresso em função dos dados enviados / tamanho total.

Se alguem souber ajudar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

atenção que eu falei em javascript e não java são coisas bem distintas...

@perdido_e_sozinho

é bem possivel que o box.net não esteja a usar php. não sou nenhum guru de php nem lá perto ando, mas pelos conhecimentos que tenho, sinceramente não estou a ver como é que isso será possível com php... da maneira que o php funciona, simplesmente não estou a ver... apenas com php, não creio ser possível...

----------------- EDIT --------------------

Após umas buscas no google encontrei algo... Sabendo programar noutras linguagens e tendo suporte para elas, usando ASP, é fácil. Perl, pode não ser tão fácil mas também não é dificil. Em javascript não encontrei nada mas não me parece ser possível também. E com PHP é definitivamente impossível pois o PHP não permite acesso a certas informações do envio do ficheiro. Para se criar uma barra desse genero, precisamos de saber o tamanho do ficheiro e quanto é que já foi enviado, tal informação é impossivel de obter com PHP.

Se possuires Perl no teu servidor, encontrei um script para PHP que te faz isso. Aquilo básicamente usa um outro script em perl para a barra de progresso, mas assim que o ficheiro tiver sido totalmente enviado, já é processado por php.

Demo: http://www.raditha.com/php/upload.php

Página: http://www.raditha.com/php/progress.php

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tambem acho q não porque o php, quando "actua" já recebeu o ficheiro por upload... a barra de progresso tem que surgir antes... deve ser qualquer coisa relacionada com javascript ou java... nao sei

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lê o meu post anterior, acabei de o editar...

de facto, isso também daria para fazer se o PHP fornecesse mais informações do envio do ficheiro, porque pela demo desse script que postei ai em cima, vocês reparam que a página com a barra está sempre a fazer um refresh, logo se o PHP fornecesse o total de bytes enviados para o sistema, também era possivel fazer com PHP dessa mesma forma. mas lá esta, o PHP não fornecesse esse dado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso e feito normalmente com DHTML e AJAX, da trabalho mas da para fazer...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora