Télécharger un fichier en changeant de fenêtre.emplacement w/ Safari
J'ai un hors ligne fichier html qui génère et enregistre un fichier CSV par la fenêtre de réglage.emplacement pour
data:text/csv;base64,Intfa2V5fSIsInt...
Cependant, dans Safari, cela apporte juste le CSV dans le navigateur.
Paramètre de l'url:
data:application/csv;base64,Intfa2V5fSIsInt...
forces Safari pour télécharger le fichier mais il devient un nom de fichier générique de juste Inconnue "-3'. Est-il un moyen de spécifier le nom de fichier?
OriginalL'auteur speg | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, un avertissement:
application/csv
n'est pas un valide type MIME, donc le fait qu'il "travaille" pour vous dans ce cas est purement une mise en œuvre caprice qui pourrait très bien changer à l'avenir. (Par exemple, Safari afficheapplication/octet-stream
, je m'attends à le télécharger.)HTML5 n'ont nouveau
<a télécharger="fichier.name">
l'attribut. Cela force le navigateur à télécharger le fichier sur le disque; il utilise la valeur de l'attribut comme le nom de fichier par défaut. Il fonctionne en conjonction avec une base de données URI ou un blob URI. (Démo)Cependant, il n'est actuellement pas pris en charge par Chrome (14+). Safari 5.1 ignore l'attribut.
Une alternative possible est d'utiliser la Système de fichiers de l'API, mais qui vous donne un bac à sable dossier de travailler avec. Vous ne pouvez pas—par exemple—pour enregistrer le fichier directement sur le dossier Documents de l'utilisateur. Au lieu de cela, vous pouvez écrire un fichier dans le bac à sable et ensuite rediriger vers un fichier sur le nouveau
filesystem
schéma:Cela devrait invoquer l'UA mécanisme de téléchargement (avec le bon nom de fichier!), mais je n'ai pas testé, donc il est possible Safari va juste afficher le fichier de toute façon.
OriginalL'auteur josh3736
Selon la RFC 2397 pas. Il n'existe aucun moyen.
Également lire cette liés à la question.
OriginalL'auteur antyrat