TÉLÉCHARGEMENT( ET NON UPLOAD) DE PLUSIEURS FICHIER
- Accueil
- Forum
- Programmation
- PHP
- TÉLÉCHARGEMENT( ET NON UPLOAD) DE PLUSIEURS FICHIER
yvesroland Le 24 juin 2019 à 10:37 (Édité le 25 juin 2019 à 11:22)
Pour info mon code est bien évidemment dans une boucle avec la taille du tableau tout ça. J'ai vraiment besoin d'aide, je livre le projet dans 1 semaines et c'est cette fonctionnalité qu'il me manque 🙏🙏🙏
yvesroland Le 24 juin 2019 à 10:40 (Édité le 24 juin 2019 à 10:44)
if (strtolower($_SESSION['page']) == "album") {
$contentArray = explode('@@', $infoFile->contentFic());
for ($i=0; $i<count($contentArray); $i++) {
$file = "../images/albums/".$contentArray[$i];
downloading($file);
}
}
Fonction de telechargement:
function downloading($fileDownload)
{
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($fileDownload));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($fileDownload));
readfile($fileDownload);
}
Balatharas Le 24 juin 2019 à 20:57 (Édité le 24 juin 2019 à 20:59)
Sinon solution qui marchera forcément, lancer le téléchargement d'un zip au lieu de balancer tout les audios.
Cela permettra de lancer qu'un seul téléchargement, de regrouper l'album en un seul dossier et de régler ton problème.
D'ailleurs tu peux automatiser la création du .zip/.rar en php.
Je te laisse chercher la librairie tu devrais vite trouver
Ainsi tu peux créer par php une archive de, par exemple, tout ce qui se trouve dans un certain dossier. Ensuite tu récup le nom et le fais télécharger si l'utilisateur souhaite tout télécharger d'un coup 😀
yvesroland Le 25 juin 2019 à 09:22 (Édité le 1 janvier 1970 à 01:00)
@Balatharas Merci beaucoup, en fait j'y avais pensé, je me suis dit que certains de mes utilisateurs ne connaissent pas d'outil pour décompresser 😜 donc pour faciliter je voulais leur envoyer les fichiers en clair. Mais je pense que je vais faire comme tu l'a dis, je vais les laisser se débrouiller pour décompresser😂😂😂😂
Balatharas Le 25 juin 2019 à 11:06 (Édité le 1 janvier 1970 à 01:00)
yvesroland Le 25 juin 2019 à 11:21 (Édité le 1 janvier 1970 à 01:00)
$contentArray = explode('@@', $infoFile->contentFic());//Extraction des noms de mes différents fichiers à télécharger
$zip = new ZipArchive;//Creation d'une instance de la classe ZipArchive
$nameAlbum = "../userSpace/downLoading/".$infoFile->libFic().".zip"; //Récupération du chemin où sera créer l'archive
if ($zip->open($nameAlbum, ZipArchive::CREATE) === TRUE) {// création et ouverture de l'archive
//Debut de la boucle for jusqu'a la taille de notre tableau. Contenant les noms de nos fichiers
for ($i=0; $i<count($contentArray); $i++) {
$file = "../lien/vers/".$contentArray[$i];//récupération du chemin d'accès du fichier a télécharger
$zip->addFile($file);// ajout du fichier dans l'archive
}
$zip->close(); //Quand tout s'est bien passé on ferme le fichier zip
downloading($nameAlbum); //Lancement du téléchargement à partir de ma fonction. LE code est plus haut
} else {
return "echec"; // dans le cas où la création et l'ouverture de l'archive ont échoué alors on retourne echec
}