Forum de discussion
Forum « Programmation ASP » (archives)
Re: forcer un téléchargenment
Envoyé: 11 mai 2006, 6h27 par Oznog
Il suffit d'envoyer une en-tête http qui force un téléchargement, comme le ZIP.
Qu'un fichier soit téléchargé ou ouvert n'a rien à voir avec le nom du fichier, ni même avec son format ni même avec le fichier carrément! C'est uniquement le type MIME qui indique au navigateur le type de fichier téléchargé (ils le sont tous en partant). Ensuite le navigateur utilise une table de corespondance pour gérer le fichier. Cette table est même accèssible au internaute dans la configuration du Navigateur.
C'est ainsi qu'un type MIME html indique au navigateur d'utiliser son interpréteur pour ouvrir le document automatiquement après le téléchargement. Même chose pour un type Text ou XML. Par contre quand un type est Word, Excel ou PDF, il utilise le module externe (plug-in) associé avec le bon type. C'est ainsi qu'un Word opu un PDF s'ouvre automatiquement après son téléchargement dans le navigateur.
Maintenant, quand le navigateur ne reconnait pas le type MIMI, il n'ouvre pas le fichier et demande plutôt où le sauvegarder! C'est aussi le cas avec un fichier ZIP à la différence que cette fois il reconnait le type MIME.
Alors si tu me suis bien, il suffit donc de passer le type MIME de ton choix INDÉPENDAMENT du fichier.
<%
Response.Buffer = TRUE
Response.ContentType = "application/octet-stream"
' ou
Response.ContentType = "application/x-msdownload"
%>
Voilà, avec cette instruction tout en haut du document ASP, tu peux tromper un navigateur. Et passer par exemple une simple image qui ne sera pas affiché mais bien sauvé sur le disque puisque le navigateur pense que c'est un fichier ZIP.
J'ai répondu souvent à cette question alors une recherche sur ce forum avec « Response.ContentType » devrait retourner plusieurs discussion avec d'autres exemple de type MIME.
Ciao
Oznog
Réponses
|