IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Proposer le téléchargement d'un fichier


Sujet :

ASP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    554
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 554
    Points : 181
    Points
    181
    Par défaut Proposer le téléchargement d'un fichier
    Je cherche de l'aide pour développer un script ASP qui propose le téléchargement d'un fichier PDF. Je ne veux pas qu'en cliquant sur le lien le fichier s'affiche dans le navigateur mais bien qu'une boîte de dialogue propose le téléchargement comme lorsqu'il s'agit d'un type de fichier inconnu pour le navigateur.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    Vive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%
    '--------------------------------------------
    Response.Buffer = True
    Dim strFilePath, strFileSize, strFileName
     
    Const adTypeBinary = 1
     
    strFilePath = "F:\Chemin_vers_le_fichier.pdf"
    strFileSize = ""
    strFileName = "Toto.pdf"
     
    Response.Clear
     
    '8*******************************8
    ' Requires MDAC 2.5 to be stable
    ' I recommend MDAC 2.6 or 2.7
    '8*******************************8
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Type = adTypeBinary
    objStream.LoadFromFile strFilePath
     
    strFileType = lcase(Right(strFileName, 4))
     
    ' Feel Free to Add Your Own Content-Types Here
    Select Case strFileType
    Case ".asf"
    ContentType = "video/x-ms-asf"
    Case ".avi"
    ContentType = "video/avi"
    Case ".doc"
    ContentType = "application/msword"
    Case ".zip"
    ContentType = "application/zip"
    Case ".xls"
    ContentType = "application/vnd.ms-excel"
    Case ".gif"
    ContentType = "image/gif"
    Case ".jpg", "jpeg"
    ContentType = "image/jpeg"
    Case ".wav"
    ContentType = "audio/wav"
    Case ".mp3"
    ContentType = "audio/mpeg3"
    Case ".mpg", "mpeg"
    ContentType = "video/mpeg"
    Case ".rtf"
    ContentType = "application/rtf"
    Case ".htm", "html"
    ContentType = "text/html"
    Case ".asp"
    ContentType = "text/asp"
    Case Else
    'Handle All Other Files
    ContentType = "application/octet-stream"
    End Select
     
     
    Response.AddHeader "Content-Disposition", "attachment; filename= " & strFileName
    Response.AddHeader "Content-Length", strFileSize
    ' In a Perfect World, Your Client would also have UTF-8 as the default 
    ' In Their Browser
    Response.Charset = "UTF-8"
    Response.ContentType = ContentType
     
    Response.BinaryWrite objStream.Read
    Response.Flush
     
    objStream.Close
    Set objStream = Nothing
     
    %>
    Ce qui est en fait important c'est les "Headers".

    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    juste un petit truc pas méchant: là tu extrais l'extension en prenant systématiquement les 4 derniers caractères, mais cela peut engendrer des erreurs avec certains fichier (".html" par exemple), je vous mets une fonction que j'ai été amené à développer pour éviter ce genre d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function Extension(NomFichier)
      Dim n, varTemp
       varTemp=CStr(NomFichier)
       n=inStr(varTemp,".")
      Do
        If n=0 Then Exit Do
        varTemp=Right(varTemp, Len(varTemp)-n)
        n=inStr(varTemp,".")
      Loop
     Extension=CStr(Right(nomFichier,Len(varTemp)+1))
    End Function
    voilà, ça ça extrait l'extension du fichier à coup sur.

    pour l'utilisation: il faut l'appeler ainsi dans la fonction:
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strFileType = lcase(Right(strFileName, 4))
    il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strFileType = lcase(Extension(strFileName))
    voilà voilà...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    et j'oubliais, ça a l'air puissant, je vais voir si ça peut pas m'aider à faire ce dont j'avais besoin mais où j'utilisais javscript... merci à vous

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    wow, j'ai testé ce truc, il marche nickel, enfin, presque, ça déconne quand il y a des espaces dans le nom du fichier, j'ai été obligé de rajouter des guillemets autour du nom dans le premier addHeader...

    c'est du tonnerre ce truc

  6. #6
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour Immobilis, bonjour tout le monde,

    Je me permets de réagir sur ce poste, si vous souhaîtez que je crée un nouveau poste, dite le moi.

    Voilà, je viens de tester le script de Immo, il est génial ce truc !!!

    Seul hic, et oui, il en faut un, c'est que ça fonctionne pas avec IE7.

    Le message d'erreur est (voir image attachée).

    J'ai testé avec un fichier xls, sous firefox il ouvre le fichier, sous IE7, il ouvre le classeur xls mais il n'y a rien dedans.

    Savez-vous comment résoudre ce problème ?

    Merci d'avance.

    beegees

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    oui, je connais l'erreur...
    en fait, il faut que tu donnes la taille du fichier que tu vas envoyer, pour qu'il puisse le lire correctement...

    pour ça, tu peux faire comme moi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set fso=Server.CreateObject("Scripting.FileSystemObject")
    set f= fso.getFile("nomabsoludufichier")
    strFileSize=CStr(f.Size)
    set f=nothing
    set fso=nothing

  8. #8
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut newbiegeek,

    Merci pour cette réponse intéressante.

    Je viens de tester, ça marche nikel !!!

    T'es trop fort !

    MERCI !

    Par contre, toujours un problème pour créer un fichier excel dans mon serveur, personne pour m'aider

    Merci encore pour tout.

    beegees

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Points : 22
    Points
    22
    Par défaut
    tu peux me montrer le code que tu as pour créer un fichier excel sur ton serveur?

    ou alors, je pense qu'il est plus avisé de créer un nouveau sujet, parce que là il s'agit d'effectuer le téléchargement coté client: comme une pièce jointe...
    (envoie moi le lien par MP)

    bonne journée

    newbiegeek

    PS: je suis pas trop fort, j'ai juste connu le même bordel...

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/12/2011, 18h43
  2. Proposer le téléchargement d'un fichier côté client (GWT)
    Par womannosky dans le forum GWT et Vaadin
    Réponses: 19
    Dernier message: 06/09/2011, 11h24
  3. Proposer le téléchargement de fichiers PDF
    Par Amel_B dans le forum Langage
    Réponses: 15
    Dernier message: 29/04/2009, 11h51
  4. [CSV] Proposer le téléchargement d'un fichier
    Par virgrennes dans le forum Langage
    Réponses: 21
    Dernier message: 04/01/2008, 11h56
  5. Obliger un fichier (quelqu'en soit l'extension) à se proposer en téléchargement
    Par Larsen00 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/06/2007, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo