메뉴 건너뛰기

PHP
2016.02.15 15:56

cURL download progress in PHP

조회 수 75 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부



This is how the callback looks in C:

typedef int (*curl_progress_callback)(void *clientp,
                                      double dltotal,
                                      double dlnow,
                                      double ultotal,
                                      double ulnow);

Probably in PHP it should look like

curl_progress_callback($clientp, $dltotal, $dlnow, $ultotal, $ulnow)

So, assuming you have page.html which loads a .php file in an iframe.

In your php script, you will require the following functions:

curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, 'curl_progress_callback');    
curl_setopt($curl, CURLOPT_BUFFERSIZE,64000);    
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);

which should produce an output similar to the following:

0
0.1
0.2
0.2
0.3
0.4
...

then on the iframe page, you will have a progress bar

<div id="progress-bar">
    <div id="progress">0%</div>
</div>

CSS would be something like this

#progress-bar {
    width: 200px;
    padding: 2px;
    border: 2px solid #aaa;
    background: #fff;
}

#progress {
    background: #000;
    color: #fff;
    overflow: hidden;
    white-space: nowrap;
    padding: 5px 0;
    text-indent: 5px;
    width: 0%;
}

The javascript

var progressElement = document.getElementById('progress')

function updateProgress(percentage) {
    progressElement.style.width = percentage + '%';
    progressElement.innerHTML = percentage + '%';
}

You can have it output JavaScript and have it update the progress bar for you, for example:

<script>updateProgress(0);</script>
<script>updateProgress(0.1);</script>
<script>updateProgress(0.2);</script>

You might be interested in some more example code

down-source.php-x



http://stackoverflow.com/questions/13958303/curl-download-progress-in-php


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
48 Apache APM 설치 apache 2.4 / php 5.5 / mariadb 10.0 맨하탄노숙자 2017.05.23 1
47 Apache APM 맨하탄노숙자 2017.02.06 14
46 PHP How To Use Systemctl to Manage Systemd Services and Units 맨하탄노숙자 2016.07.19 28
45 PHP php-fpm systemctl 추가 맨하탄노숙자 2016.07.19 26
44 php gd-library 소스 경로 및 컴파일 옵션 맨하탄노숙자 2016.04.17 42
43 PHP PHP 5.2.17 컴파일시 오류 발생 file 맨하탄노숙자 2016.04.17 45
42 Apache 스토리지 웹서버 secret 맨하탄노숙자 2016.04.17 0
41 Apache Apache의 Worker / Prefork 방식의 차이점과 세팅 방법 맨하탄노숙자 2016.04.17 33
40 Apache [CENTOS] apache web server switching from prefork to worker MPM 맨하탄노숙자 2016.04.17 76
39 PHP PHP 4 Memcache 맨하탄노숙자 2016.03.06 58
38 NGINX nginx location 설정 맨하탄노숙자 2016.02.18 76
37 NGINX nginx 파일 공유 및 암호 설정하기 맨하탄노숙자 2016.02.18 169
36 NGINX nginx에서 동영상 스트리밍 서비스하기 맨하탄노숙자 2016.02.18 49
35 PHP PHP/cURL download progress monitoring 맨하탄노숙자 2016.02.15 37
» PHP cURL download progress in PHP file 맨하탄노숙자 2016.02.15 75
33 이미지 다운로드시 다운로드 진행상황 표시 file 맨하탄노숙자 2016.02.15 65
32 PHP 파일 업로드 진행상황표시 file 맨하탄노숙자 2016.02.15 67
31 PHP 다운로드 구현 상태 (진행 상황 표시) 맨하탄노숙자 2016.02.15 49
30 PHP UTF-8 파일 다운로드 함수 맨하탄노숙자 2016.02.15 66
29 PHP down.php 다운로드 구현 맨하탄노숙자 2016.02.15 71
Board Pagination Prev 1 2 ... 3 Next
/ 3