Bonjour,
Je n'ai pas une très grande expérience en PHP et je me trouve confronté à un problème.
J'utilise @home un serveur avec pour principale fonctionnalité celle de NAS.
J'utilisais, pour pouvoir accéder à mes fichiers de n'importe où, un serveur Apache avec l'option Indexes activé et une gestion basic d'identification à base de .htaccess.
Voulant améliorer un peu la chose je me suis lancé dans un petit script PHP exécuté par Apache avec de l'URL Rewriting qui gère l'identification, puis me permet de naviguer dans mes dossiers / fichiers pour finir par les télécharger.
Pour ce faire j'utilise ce morceau de code :
$file = "/chemin/vers/mon/fichier";
$name = "nom_du_fichier";
$finfo = finfo_open();
$file_info = finfo_file($finfo, $file, FILEINFO_MIME);
finfo_close($finfo);
header("Content-Type: " . $file_info);
header("Content-Length: " . filesize($file));
header("Content-disposition: attachment; filename=\"" . $name . "\"" );
readfile($file);
exit;
|
Cela fonctionne bien, les fichiers se téléchargent sans soucis, et sans erreurs.
Sauf que PHP étant visiblement monotâche, quand je suis en train de télécharger un fichier, je ne peux plus rien faire d'autre (naviguer dans les dossiers, lancer un second téléchargement en parallèle, etc.) comme le permet Apache et son option Indexes...
Y a t-il un moyen simple de palier à ce problème sans avoir recours à la gestion des Threads dans PHP ?
Une option Apache peut être ?
Merci par avance à vos réponses
Message édité par zeblods le 15-04-2013 à 17:53:28