2008-12-03 7 views

Répondre

5

Pour que cela se produise, vous devez envoyer un en-tête avec l'en-tête Content-disposition: attachment; filename=fname.ext dans votre langue préférée avant d'envoyer le fichier. Sans connaître les détails tels que la langue et le contrôle que vous avez sur la configuration de votre serveur, je ne peux pas vous donner d'instructions plus détaillées. Vous ne pouvez pas le faire avec HTML et javascript seulement.

+0

Il est également possible d'ajouter ceci de façon statique dans IIS si c'est seulement un couple de fichiers et que vous ne voulez pas le faire avec ASP/PHP. Pour appliquer l'en-tête de manière statique, cliquez avec le bouton droit sur le document dans le Gestionnaire des services Internet, puis sélectionnez Propriétés. Sélectionnez l'onglet En-têtes HTTP et entrez l'en-tête ci-dessus. – Stefan

3

Est loin est je sais que ce n'est pas possible. Sans la possibilité de définir les en-têtes appropriés, le navigateur décidera quoi faire avec le fichier, qui est généralement la lecture, vous devrez demander aux utilisateurs d'appuyer sur, cliquez avec le bouton droit sur + enregistrer sous. Si vous avez accès au serveur, il est assez simple de définir les en-têtes en php ou en utilisant apache .htaccess

 
<FilesMatch "\.(?i:mp3)$"> 
    ForceType audio/mpeg 
    Header set Content-Disposition attachment 
</FilesMatch> 

Ou si le navigateur ne reconnaît pas qu'il est un MP3 et même pas essayer de l'ouvrir:

 
<FilesMatch "\.(?i:mp3)$"> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

pour voir la mise en-tête php: http://nl.php.net/header

0

d'accord avec smazurov, et en fin de compte vous ne pouvez pas contrôler la présentation de vos médias, bien que le Content-disposition peut l'obtenir fait pour vous. Voici le RFC on the header in question.

0

JavaScript côté client ne peut pas atteindre cela (la fonctionnalité la plus proche est document.execCommand('SaveAs'), qui enregistre simplement la page HTML entière).

-1

Bien que ce ne soit pas une solution, remplacez l'extension de fichier par autre chose que MP3. Et, demandez à l'utilisateur de le renommer une fois téléchargé.

0

En utilisant google j'ai trouvé un fil avec un js. utilisé pour enregistrer des fichiers. Check it out (posté en 2003, ne l'a pas testé moi-même).

La meilleure soluting serait d'utiliser php, asp, ou quelle que soit la langue de votre support de serveur, pour résoudre ce problème ;-)

0
<a href="linkto.mp3" download>Download MP3 File </a> 
+1

Non pris en charge par navigateur. –

0

Si vous voulez qu'ils soient obligés de le télécharger à partir d'un lien, puis ajoutez l'attribut download à l'élément de liaison (nom de fichier en option):

<a href="file.mp3" download="Song_Name.mp3">Download</a> 

Si vous souhaitez que les utilisateurs soient obligés de télécharger le fichier quand ils visitent l'URL par tout moyen, vous êtes hors de la chance. Ce n'est pas possible avec HTML et JS. Vous devez avoir accès au serveur pour affecter les en-têtes du fichier avant qu'il ne soit chargé dans le navigateur, comme d'autres l'ont dit.

Questions connexes