Saf PHP / AJAX kullanarak ilerleme yükleme?

5 Cevap php

Bunu daha önce sorulmuş eminim, ama ben iyi bir cevap bulmak için görünmüyor olabilir gibi, burada tekrar ... soran duyuyorum. :)

Bir dosya yükleme fiili ilerleme rapor HTML, JavaScript / AJAX ve PHP, sadece bir karışımını kullanarak herhangi bir yolu var mı?

SWFUpload veya benzer düşündüren herkese cevap olarak:

Ben bunu biliyorum. Bu caddede. Ben% 100 saf çözüm arıyorum (ve evet, ben muhtemelen almazsınız biliyorum).

5 Cevap

Eğer PHP içine PECL paketler eklemek mümkün iseniz, uploadprogress paket var.

Basit yolu olsa da, sadece SWFUpload kullanmak olacaktır.

PHP / Javascript ile dosya yükleme İzleme PECL uzantısı gerektirir:

uploadprogress

Lütfen kullanıcılara ilerlemesini görüntülemek için gereken kod iyi bir örnektir:

Uber Uploader

Yanılmıyorsam eğer PHP ile iletişim kurmak için JQuery kullanır.


You could also write it yourself, It's not that complex.

Adlı yükleme formunun first elemanı olarak gizli bir öğesini ekleyin UPLOAD_IDENTIFIER.

Poll a PHP script that calls uploadprogress_get_info( UPLOAD_IDENTIFIER ) It return an array containing the following:

time_start     - The time that the upload began (unix timestamp),
time_last      - The time that the progress info was last updated,
speed_average  - Average speed in bytes per second,
speed_last     - Last measured speed in bytes per second,
bytes_uploaded - Number of bytes uploaded so far,
bytes_total    - The value of the Content-Length header sent by the browser,
files_uploaded - Number of files uploaded so far,
est_sec        - Estimated number of seconds remaining.

Let PHP return the info to Javascript and you should have plenty of information. Depending on the audience, you will likely not use all the info available.

Bir dosya yükleme fiili ilerleme rapor HTML, JavaScript / AJAX ve PHP, sadece bir karışımını kullanarak herhangi bir yolu var mı?

Ben düz HTML web sunucusu yüklü PHP (multipart / form-data) dosyası yüklenenler izlemek için herhangi bir yol bilmiyorum.

Siz veri gelir olarak multipart / form-data çözümleyici ilerleme erişimi olması gerekir, ancak çünkü PHP HTTP istek gövdesini erişim yolları ($HTTP_RAW_POST_DATA ve {[(1 bu imkansız görünüyor )]}) "multipart / form-data" "enctype = mevcut değildir" olarak belgelenmiştir.

Sen segmentli veya olmayan çok parçalı bir şekilde göndermek için bir dosyanın içeriğini kapmak için bir yükleme alanı en FileList kullanarak Firefox'ta bir komut destekli dosya upload yapabilirdi. Hala iş bir demet olsa ayrıştırmak için.

(Hatta sadece dosya yüklemeleri alma kendi HTTP işleme kodu kullanarak. Ama bu nispeten daha az kazanç için çalışma büyük miktarda bulunuyor için başka bir bağlantı noktası üzerinde bağımsız bir sunucu olarak bir PHP komut dosyası çalıştırabilir.)

Ben bu ilerleme çubuğu için çok güzel bir çözüm denemek ve necesarely php bağlı değil FancyUpload beşe tavsiye ederim. Digitarald.de Checkout da diğer araçlar

şerefe

IMHO, bu Web tarayıcıları çözmek gerekir sorundur. Biz yüklemeler için metre ilerleme var, neden değil yüklenenler için de?

Örneğin bu bir göz atın:

http://www.fireuploader.com/