Ouvert en Base64 dans un nouvel onglet
J'ai encodé en Base64 document qui peut être de fichier PDF ou image.
Je voudrais créer un bouton en HTML5, la page qui s'ouvre ce base64 dans un nouvel onglet (ou une nouvelle page, il n'a pas d'importance)
J'ai trouvé ce code peut faire l'affaire :
HTML:
<a href="http://chriscoyier.net"
onclick="window.open(this.href); return false;"
onkeypress="window.open(this.href); return false;">
This link will open in new window/tab
</a>
Il fonctionne bien.
Mais lorsque je remplace le lien http avec
href="data:application/octet-stream;base64,/9j/4A.."
puis le fichier est téléchargé, mais n'est pas affichée dans le navigateur.
Comment puis-je faire ?
Grâce
Vous devez vous connecter pour publier un commentaire.
Testé sur chrome et Firefox, il suffit d'ajouter le base64 valeur dans l'attribut href de travaux (sans onclick & onkeypress événements). Juste comme ça :
HTML:
Votre type MIME est "application/octet-stream", qui sera généralement être téléchargés et ne s'affiche pas (en fonction du navigateur et les paramètres du système). Si vous essayez de charger un navigateur affichables contenu, vous devez utiliser un plus type MIME approprié pour votre contenu afin qu'il s'affiche en ligne et ne pas obtenir téléchargé.
Veuillez noter: Comme de Chrome 60 et un prochaine version de FireFox (bien qu'il semble que FireFox sera toujours en charge les images), les données Uri ne peut pas être ouvert dans le cadre de plus haut niveau du navigateur (et il n'a jamais été pris en charge dans IE/Edge), mais ils peuvent être ouverts dans des iframes et les éléments img.
La solution de contournement ci-dessous est testé et de travail dans la dernière version de ces navigateurs. Cela pourrait aussi être réécrite avec une balise img pour afficher une image.
Toutefois, si votre intention est simplement de télécharger le contenu (ce qui est contraire à l'intention énoncée dans la question, mais applicable à "application/octet-stream" contenu en général), cela devrait suffire: