Bonjour,

Je suis en train de développer un site ou il y a de gros fichiers à télécharger. J'ai un problème a niveau du téléchargement. Si un user télécharge un fichier pendant 10 minutes, le site n'est plus accessible pendant cette période et les autres utilisateurs auront un time out...

Voici mon code :

    public function download(string $webDirectory)
    {
        $path = $webDirectory. "/public/Software/ubuntu.iso";
        $ret = new StreamedResponse();
        $ret->setCallback (function () use($path){
            $f = fopen($path, 'rb');
            $i = 0;
            while (!feof($f)) {
                print(@fread($f, self::SIZE_CHUNK));
                if ($i % self::FLUSH_THRESHOLD === 0) {
                    flush();
                }
                $i++;
            }
            fclose($f);
        });
        $contentDisposition = $ret->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT, 'ubuntu.iso');
        $ret->headers->set('Content-Disposition', $contentDisposition);
        return $ret;
    }

Avez-vous déjà rencontré ce problème ?

Merci d'avance pour votre aide :)

1 réponse


Bonjour,
A ma connaissance tu ne pourras pas limiter cela au niveau de Symfony mais tu peux appliquer une limite par Apache.
Je te laisse chercher : apache2 BandwidthModule.