Dlaczego nie zapisuje postępu do pliku o nazwie $id (ustawiam w url np. &id=1) ?
$url = $_GET['url'];
$name = $_GET['name'];
$id = $_GET['id'];
file_put_contents( $id, '' );
$targetFile = fopen($name, 'w' );
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_NOPROGRESS, false );
curl_setopt( $ch, CURLOPT_PROGRESSFUNCTION, 'progressCallback' );
curl_setopt( $ch, CURLOPT_FILE, $targetFile );
curl_exec( $ch );
function progressCallback( $download_size, $downloaded_size, $upload_size, $uploaded_size )
{
if ( $download_size == 0 )
$progress = 0;
else
$progress = round( $downloaded_size * 100
/ $download_size );
if ( $progress > $previousProgress)
{
$previousProgress = $progress;
fputs( $fp, "$progress\n" ); print($id.' '.$progress); }
}
Po zmianie $fp = fopen($id, 'a' ); na $fp = fopen($_GET['id'], 'a' ); jest ok :/
Ten post edytował m.b 28.01.2013, 19:37:48