Dans mon site de projet, si je clique sur un lien, le PDF s'ouvre dans une nouvelle fenêtre ou parent. Eh bien, je veux qu'une boîte apparaisse qui invite l'utilisateur à télécharger le fichier au lieu de l'ouvrir. p>
Est-ce que quelqu'un connaît-il d'un simple événement JavaScript onclick qui le fera, dans tous les navigateurs, avec des paramètres par défaut? p>
Mon serveur est basé sur PHP. P>
6 Réponses :
Vous ne pouvez pas le faire via JavaScript, vous devez avoir besoin d'implémentation côté serveur. P>
Voici le SO POST qui devrait aider:
Autoriser l'utilisateur de télécharger de mon site via Response.writefile ( ) p>
Depuis que vous avez marqué cela .net, je dirais que c'est votre meilleure solution:
Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = "application/pdf"; Response.AddHeader("Content-Disposition", "attachment;filename=download.pdf"); Response.WriteFile(Server.MapPath("~/files/myFile.pdf")); Response.Flush(); Response.Close();
Le code requis de l'article: réponse.Appendheader ("disposition de contenu", "pièce jointe; nom_file =" + nom);
Modifiez le type de contenu en applications / octet-flux. Vous pouvez trouver cependant que certains navigateurs déduiront de l'extension de fichier qu'il doit s'ouvrir en PDF avec votre visualiseur PDF préféré.
Response.AppendHeader( "content-disposition", "attachment; filename=" + name );
Étant donné que votre édition indique que vous utilisez php, voici comment faire la même chose en PHP:
<?php header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="downloaded.pdf"'); readfile('original.pdf'); ?>
Je veux activer cette chose pour tous les PDF sur le site, pas pour un fichier PDF spécifique
Il est utile d'inclure également la taille du fichier ou le navigateur dira probablement quelque chose «inconnu» pour la taille / l'heure à télécharger. en-tête ('"Longueur de contenu: 12345'); code>
Si vous obtenez une erreur de fichier corrompue, essayez ceci: où $ fichier code> est le chemin