Téléchargement direct d'un lien mp3

Fermé
The_First_Empire
Messages postés
187
Date d'inscription
samedi 16 juin 2007
Statut
Membre
Dernière intervention
14 janvier 2014
- Modifié par The_First_Empire le 7/01/2014 à 15:16
ThEBiShOp
Messages postés
8318
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
- 14 janv. 2014 à 14:59
Bonjour, je propose sur mon site perso la possibilité de télécharger une musique mp3. L'utilisateur est alors "forcer" à utiliser son clic droit puis enregistrer la cible sous puis choisir son emplacement pour enregistrer sa musique.
Ce que j'aimerais faire c'est qu'il puisse cliquer sur un lien puis que le navigateur lui propose directement le téléchargement.

J'ai plus ou moins réussi à faire ceci grâce à ce tutoriel :
http://youngdigitalgroup.com.au/tutorial-force-download-mp3-file-streaming/

Le problème c'est que la page reste bloqué pendant un certain temps avant de me proposer le téléchargement... avez vous une idée de pourquoi dois-je attendre? (alors que clic droit > enregistrer la cible sous ne prend pas de délais )

ps : le fichier mp3 ne se trouve pas sur mon site mais à une autre adresse

7 réponses

Il faudrait que tu prenne le lien cible de ton mp3 et que tu le mette, pour que ton utilisateur le télécharge librement.

Exemple :
http://monsite.net/downloads/musics/song.mp3


Autre exemple : https://secure.piriform.com/502/cookie?affiliate=10605&redirectto=http://download.piriform.com/ccsetup409.exe&product=69697

Tu vas alors télécharger CCleaner directement depuis le serveur de 01Net sans passer par le site.

Ou alors tu fait clic droit sur le mp3 que tu veux télécharger => copier l'adresse du lien et t'auras juste à le coller pour proposer un téléchargement direct depuis un autre serveur directement.

Sofiane.
0
The_First_Empire
Messages postés
187
Date d'inscription
samedi 16 juin 2007
Statut
Membre
Dernière intervention
14 janvier 2014
11
Modifié par The_First_Empire le 7/01/2014 à 23:24
c'est ce que j'effectue mais le problème c'est que les navigateurs actuels ouvre un lecteur pour pouvoir lire le fichier au lieu de proposer à l'utilisateur de le télécharger... (chose qu'il ne fait pas pour les .exe par exemple)

une autre idée?
0
The_First_Empire
Messages postés
187
Date d'inscription
samedi 16 juin 2007
Statut
Membre
Dernière intervention
14 janvier 2014
11
8 janv. 2014 à 09:11
up
0
ThEBiShOp
Messages postés
8318
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 595
8 janv. 2014 à 09:15
Salut,

tu peux utiliser les fonctions header() pour forcer le téléchargement d'un fichier.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
The_First_Empire
Messages postés
187
Date d'inscription
samedi 16 juin 2007
Statut
Membre
Dernière intervention
14 janvier 2014
11
8 janv. 2014 à 15:31
J'ai l'impression qu'avant de proposer directement à l'utilisateur le téléchargement, il va d'abord le télécharger sur le serveur puis le proposer...
Parce que j'ai un gros délais d'attente avec les headers alors que clic droit > enregistrer la cible sous est immédiat

Une autre idée?
0
ThEBiShOp
Messages postés
8318
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 595
8 janv. 2014 à 15:35
tu ne peux pas l'héberger sur le même serveur pour voir ?
0
The_First_Empire
Messages postés
187
Date d'inscription
samedi 16 juin 2007
Statut
Membre
Dernière intervention
14 janvier 2014
11
Modifié par The_First_Empire le 13/01/2014 à 19:54
Lancer le téléchargement sur un clic au lieu de passer par clic > enregistrer la cible, je peux essayer de le passer d'abord sur mon serveur mais faut comprendre que l'idée est de pouvoir proposer à l'utilisateur le téléchargement instantanément or si je télécharge d'abord sur mon serveur (et que le mp3 ou mp4 fait plusieurs gigas), l'utilisateur va attendre un peu...

Finalement, j'ai trouvé une astuce qui marche uniquement sur chrome pour l'instant, l'attribut download dans la balise a :) (attribut pris en compte en html 5 normalement) , j'espère avoir aider certains
0
ThEBiShOp
Messages postés
8318
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 595
14 janv. 2014 à 09:09
Evidemment, le but n'est pas de faire le transfert sur ton serveur avant chaque téléchargement, tu le fais une fois et basta...
0
Hello, quand tu cliques dessus il prend plus de temps car le navigateur le charge en cache avant de le lire sur son player. Dire que quand tu enregistres le téléchargement du MP3 se fait après avoir choisi le chemin.

Disons qu'il y a deux manières de forcer le téléchargement :

- héberger le .mp3 sur ton serveur et utiliser la fonction header() en php pour forcer le téléchargement direct (je te laisserais chercher sur google ;) )

- tu peux ajouter l'attribut <a href="" download="download"></a> cela force le téléchargement
/!\ Attention : c'est du HTML5, pas encore reconnu par tous les navigateurs ( https://caniuse.com/#feat=download )

A+ Seezer
0
ThEBiShOp
Messages postés
8318
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 595
14 janv. 2014 à 11:52
Salut,

si j'ai bien tout compris, il a déjà utilisé les fonctions header et c'est justement là que le temps est long.
0
The_First_Empire
Messages postés
187
Date d'inscription
samedi 16 juin 2007
Statut
Membre
Dernière intervention
14 janvier 2014
11
14 janv. 2014 à 14:43
Exacte !

la 2ème solution me parait la plus simple et la plus rapide.
0
ThEBiShOp
Messages postés
8318
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 595
14 janv. 2014 à 14:53
mais pas du tout universelle, donc à éviter, ou tout du moins, il faut prévoir une alternative.
0
ThEBiShOp
Messages postés
8318
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 595
14 janv. 2014 à 14:59
Et si tu places le mp3 sur le même hébergement que ta page et que tu utilises les header, ça donne quoi ?
0