J'ai eu un problème similaire qui nécessitait que je puisse arrêter un transfert de boucle au milieu. C'est facilement dans mon top dix personnel des «bidouilles sales qui semblent fonctionner» de tous les temps.
Créez une fonction de lecture curl qui sait quand il est temps d'annuler le téléchargement.
function curlReadFunction($ch, $fileHandle, $maxDataSize){
if($GLOBALS['abortTransfer'] == TRUE){
sleep(1);
return "";
}
return fread($fileHandle, $maxDataSize);
}
Indiquez à Curl de s'arrêter si la vitesse de lecture des données chute trop lentement pendant un certain temps.
curl_setopt($ch, CURLOPT_READFUNCTION, 'curlReadFunction');
curl_setopt($ch, CURLOPT_LOW_SPEED_LIMIT, 1024);
curl_setopt($ch, CURLOPT_LOW_SPEED_TIME, 5);
Cela entraînera l'annulation du transfert de boucle pendant le téléchargement. Évidemment pas idéal mais ça semble marcher.
Vous allez devoir poster plus de code. –
pourriez-vous ajouter un peu plus d'informations s'il vous plaît, par exemple. ** pourquoi ** vous voulez fermer le transfert avant d'être terminé – wonk0