Possibilité de suspendre / reprendre téléchargement

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Possibilité de suspendre / reprendre téléchargement

Re: Possibilité de suspendre / reprendre téléchargement

par frexios » 23 oct. 2011, 22:17

Oui sa j'ai bien vu, mais le problème c'est est-ce possible avec un fichier se trouvant sur un serveur distant ?

Re: Possibilité de suspendre / reprendre téléchargement

par Gofromiel » 14 oct. 2011, 15:29

Les intervalles permettent aux navigateurs de demander des parties d'un document. Cela permet de reprendre un transfert interrompu, ou d'obtenir une part d'un long document. Les intervalles sont implémentées aux travers de l'entête "Range", par exemple pour demander les deuxièmes 500 octets d'un document, la requête inclurait:

Code : Tout sélectionner

Range: bytes=500-999
Une même requête peut demander plusieurs intervalles à la fois (par exemple les premiers et les derniers 500 octets d'un fichier), dans ce cas la réponse du serveur utilise le type MIME "multipart" avec une partie par intervalle.

Tu peux lire l'article Range Requests and Partial Responses pour plus d'informations.

Attention quand même, c'est un sacré boulot à mettre en place.

Re: Possibilité de suspendre / reprendre téléchargement

par frexios » 07 oct. 2011, 04:07

UP, pas d'idées ? au moins une piste à suivre ? :?

Possibilité de suspendre / reprendre téléchargement

par frexios » 05 oct. 2011, 19:46

Bonjour à tous,

J'ai un espace client sur lequel je propose le téléchargement de fichiers, pour cela rien de plus simple j'utilise :
header("Content-disposition: attachment; filename=$fichier");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: application/octet-stream\n");

header("Content-Length: $size");
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");

readfile($url);
Le seule problème avec cette méthode, si un utilisateur met le téléchargement en pause, si il essaye de reprendre sa foire.. étant donnée que les entête sont de nouveau envoyés.

Je viens donc vers vous pour m'aider à faire en sorte que celui ci puisse accepter de reprendre les téléchargements suspendu, car les seule solutions trouvés jusqu'ici nécessite l'utilisation de fonctions tel que fopen, fseek et fclose etc qui n'accepte pas la lecture de fichier se trouvant dans un milieu externe (sur une autre machine).

Merci par avance pour vos aides et conseils.