COMMENT FAIRE : Utiliser ASP pour envoyer un document texte dynamique au Client

Traductions disponibles Traductions disponibles
Numéro d'article: 300108 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F300108
Agrandir tout | Réduire tout

Sommaire

Résumé

Les instructions pas à pas contenues dans cet article expliquent comment utiliser ASP (Active Server Pages) pour envoyer un document texte dynamique au client. Cela est utile si vous souhaitez envoyer des données de type chaîne stockées dans une base de données au navigateur du client sans créer les fichiers réels sur le serveur Web.

Cet exemple se compose d'un formulaire qui s'auto-publie. Lorsque vous cliquez sur le bouton Soumettre, le code de script côté serveur écrit les données (texte) dans l'en-tête HTTP (Hypertext Transfer Protocol) sur le client.

Construction de la page

  1. Créez un projet Web dans Visual InterDev 6.0. Pour obtenir des instructions détaillées, consultez l'article suivant dans la Base de connaissances Microsoft :
    301184 PROCÉDURE : Créer un projet Visual InterDev
  2. Dans l'Explorateur de projets de Visual InterDev, cliquez avec le bouton droit sur <MonServeurWeb>/<NomDuProjet>, pointez sur Ajouter, puis cliquez sur Page ASP. Nommez la nouvelle page ASP DynamicText.asp.
  3. Dans la fenêtre source, supprimez tout le code généré par Visual InterDev. Mettez en surbrillance le code suivant, cliquez avec le bouton droit sur le code, puis cliquez sur Copier. Dans la fenêtre source de Visual InterDev, cliquez sur Coller au format HTML du menu Edition pour coller le code suivant :
    <%@ Language=VBScript %>
    
    <%
    
    if Request.Form("buttonSubmit") <> "" then
    
                  Dim fileName
                  Dim str1
                  Dim str2
    
                  fileName = "DynamicText.txt"
            'Les chaînes suivantes servent à construire le fichier texte.
                  str1 = "<-- Bonjour -->"
                  str2 = "Cet exemple présente la création d'un fichier texte dynamique"
    
            'ContentType indique le type MIME de cet en-tête.
                  Response.ContentType = "text/plain" 
            'La méthode AddHeader ajoute un en-tête HTML avec une valeur spécifiée. 
            'Content-disposition oblige le navigateur à effectuer un téléchargement.
                  Response.AddHeader "content-disposition", "attachment; filename=""" & fileName & """"
                  Response.Write str1 & vbnewline
                  Response.Write str2
                  Response.End
    
    End if
    
    %>
    
    <HTML>
    <HEAD>
    <TITLE> Présentation de la création d'un fichier texte dynamique </TITLE>
    </HEAD>
    
    <BODY>
    <h4> Cet exemple présente la création d'un fichier texte dynamique </H4>
    
    <FORM action="dynamicText.asp" method=POST id=form1 name=form1>
    <INPUT type="submit" value="Download TextFile" id=buttonSubmit name=buttonSubmit>
    </FORM>
    
    </BODY>
    </HTML>
    
    
  4. Vous pouvez également utiliser le Bloc-notes pour créer cette page ASP. Dans le Bloc-Notes, collez le code précédent dans un nouveau document. Dans le menu Fichier, cliquez sur Enregistrer. Dans la boîte de dialogue Enregistrer sous, utilisez la liste déroulante Enregistrer dans pour localiser l'emplacement racine de votre serveur Web (qui est généralement C:\Inetpub\Wwwroot). Dans la liste déroulante Nom de fichier, tapez DynamicText.asp. Dans la zone de liste déroulante Type de fichier, cliquez sur Tous les fichiers. Pour terminer, cliquez sur Enregistrer.
  5. Pour afficher la page, dans Visual InterDev, cliquez avec le bouton droit sur la page ASP, puis cliquez sur Afficher dans le navigateur. Vous pouvez également ouvrir votre navigateur et taper l'adresse suivante dans la barre d'adresses :
    http://<NomServeur>/DynamicText.asp
  6. Une fois la page ASP chargée, cliquez sur Download TextFile. Le fichier est alors envoyé au navigateur.

Explication du code

  • Le code suivant spécifie la propriété ContentType de l'en-tête HTTP :
    Response.ContentType = "text/plain"
    Cela informe le navigateur du type de données qui lui est envoyé. Le code donné en exemple dans cet article défini " text/plain " comme type de contenu parce que l'en-tête contient des données de texte. Sans indication du type de contenu, Microsoft Internet Information Server (IIS) prend par défaut le type de contenu " application/octet-stream ".

    Pour plus d'informations sur la propriété ContentType, reportez-vous à la RFC (Request for Comments) 1341 que vous trouverez en visitant le site Web W3C (World Wide Web Consortium) à l'adresse suivante :
    http://www.w3.org/Protocols/rfc1341/7_1_Text.html
  • L'en-tête " content-disposition " force le navigateur du client à proposer le téléchargement du fichier :
    Response.AddHeader "content-disposition", "attachment; filename=""" & fileName & """"
    Pour que le navigateur gère le contenu du texte au lieu d'inviter l'utilisateur à effectuer un téléchargement, supprimez la ligne de code " content-disposition ".

    Vous pouvez également spécifier une disposition de contenu (content-disposition) sur le serveur IIS. Pour appliquer l'en-tête de façon statique, cliquez avec le bouton droit sur le document dans le Gestionnaire des services Internet, puis cliquez sur Propriétés. Sous l'onglet En-têtes HTTP, tapez l'en-tête " content-disposition ". Cette solution est plus appropriée lorsque vous souhaitez appliquer une disposition de contenu (content-disposition) à quelques fichiers de votre système, sans avoir besoin du traitement de ASP.

    Pour plus d'informations sur la disposition de contenu, reportez-vous à la RFC 1806 que vous trouverez en visitant le site Web de l'Ohio State University à l'adresse suivante :
    http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc1806.html
  • Le code suivant écrit le contenu du texte (les chaînes " str1 " et " str2 ") au moyen de Response.Write :
    Response.Write str1 & vbnewline
    Response.Write str2
    Response.End
    " vbnewline " est une constante de Visual Basic Scripting Edition (VBScript) qui contient les valeurs des caractères retour chariot/saut de ligne (CR/LF). Lorsque str1 et str2 sont écrites dans l'en-tête HTTP, une valeur CR/LF est alors écrite entre les deux chaînes. Le code donné en exemple dans cet article utilise Response.End pour s'assurer qu'aucun contenu n'est envoyé au client après cette ligne.

    REMARQUE : Vous pouvez modifier ce code pour écrire un fichier binaire au lieu du contenu d'un texte. Si vous procédez ainsi, vous devez modifier la propriété ContentType. Par exemple, si vous écrivez dans un fichier Microsoft Excel, définissez la valeur " application/msexcel " pour ContentType. Vous devez également utiliser Response.BinaryWrite au lieu de Response.Write. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    276488 PROCÉDURE : Utiliser l'objet ADODB.Stream pour envoyer des fichiers binaires au navigateur par le biais de ASP

Dépannage

Pour plus d'informations sur les inconvénients éventuels liés à l'utilisation de la disposition de contenu, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
182315 CORRECTIF : Disposition de contenu : ne force pas la boîte de dialogue de téléchargement de fichiers
279667 BOGUE : Les en-têtes de pièces jointes avec disposition de contenu n'enregistrent pas le fichier
Dans certains navigateurs, vous pouvez souhaiter définir " application/octet-stream " comme disposition du contenu, car certains navigateurs Web gèrent le " text/plain " au lieu d'afficher une invite pour le téléchargement des fichiers.

RÉFÉRENCES

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
260519 PROCÉDURE : Afficher une boîte de dialogue " Téléchargement de fichier " pour un type MIME connu
Les coordonnées des sociétés tierces mentionnées dans cet article vous aideront à obtenir le support technique dont vous avez besoin. Ces informations peuvent faire l'objet de modifications sans préavis. Microsoft ne garantit en aucun cas l'exactitude des informations concernant les sociétés tierces.


Propriétés

Numéro d'article: 300108 - Dernière mise à jour: mardi 29 avril 2003 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Active Server Pages 4.0
Mots-clés : 
kbgrpdsasp kbhowto kbhowtomaster KB300108
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com