10
votes

Comment puis-je forcer Télécharger avec HTML / JavaScript?

J'ai un lien et, si un utilisateur clique dessus, j'ai besoin de 2 choses à arriver:

  • Une réponse HTTP correcte est envoyée à l'utilisateur (en particulier avec Type de contenu: Video / MP4 )
  • et un fichier vidéo commencera automatiquement à télécharger.

    J'ai vu quelque chose du genre avec PHP, mais est-il possible uniquement avec HTML / JavaScript?


0 commentaires

3 Réponses :


2
votes

Non, ce n'est pas possible (au moins pour les valeurs de JavaScript limitée au JavaScript côté client).

Si vous souhaitez remplacer le comportement par défaut de la manière dont un navigateur gère une ressource HTTP, vous devez le faire avec des en-têtes HTTP. Si vous souhaitez le faire correctement, utilisez L'en-tête de disposition de contenu (avec une pièce jointe valeur).

Vous pouvez définir cet en-tête à l'aide de JavaScript sur le serveur ou (à peu près) tout autre environnement de serveur.


0 commentaires

2
votes

automatiquement dépendra beaucoup sur le navigateur et ses options. Mais vous pouvez dire au navigateur ce que vous veux que soit arrivé (ce qu'il double-vérifier avec l'utilisateur) via le disposition de contenu en-tête dans la réponse. Par exemple, le réglage sur pièce jointe; nom_file = bla.mp4 sera, sur la plupart des navigateurs, invitent l'utilisateur à le télécharger (en utilisant ce nom de fichier) Même si le navigateur aurait normalement essayé d'afficher / de jouer contenu dans sa propre interface. Voir le lien pour plus de détails. (Le téléchargement est probablement la valeur par défaut des fichiers MP4, mais c'est à l'utilisateur. Je trouve cela utile lorsque vous proposez des liens de téléchargement pour les fichiers HTML.)

Vous pouvez définir l'en-tête via la configuration de votre serveur Web si vous n'utilisez pas de script de côté serveur (comme vous avez dit que vous n'êtes pas). Par exemple, avec Apache, vous utiliseriez une règle correspondant à l'URL pour ces fichiers vidéo et utilisez le Rubrique Directive .


2 commentaires

(Ceci est - ou du moins, était - pas une réponse en double. [Je déteste des réponses en double.] David a édité sa réponse à inclure disposition de contenu Après J'ai posté le mien à ce sujet.)


@David: J'aurais dû être clair que je ne critiquais pas. Il est parfaitement acceptable d'améliorer sa réponse. Il suffit de noter que les fascistes-réponses-répons-répons-répons-répons-répons-répons. :-)



45
votes

Vous pouvez utiliser l'attribut de téléchargement xxx

ou spécifier un nom de fichier à l'aide de xxx

Voir plus: https://developer.mozilla.org/fr/html/element/a#attr-Townload


0 commentaires