Jump to content

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


nuno_couto

Recommended Posts

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.

portalmundial.net »» criamos sites

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

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

ser.gifsartim.gif

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

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

Link to comment
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
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.