Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2007, 20h38   #1
Membre habitué
 
Inscription : juin 2004
Messages : 553
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2004
Messages : 553
Points : 144
Points : 144
Envoyer un message via MSN à black is beautiful
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
black is beautiful est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 10h06   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Salut,

Vive
Code :
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+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 14h25   #3
Futur Membre du Club
 
Inscription : août 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 36
Points : 16
Points : 16
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 :
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 :
strFileType = lcase(Right(strFileName, 4))
il faut mettre
Code :
strFileType = lcase(Extension(strFileName))
voilà voilà...
newbiegeek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 14h33   #4
Futur Membre du Club
 
Inscription : août 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 36
Points : 16
Points : 16
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
newbiegeek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 10h56   #5
Futur Membre du Club
 
Inscription : août 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 36
Points : 16
Points : 16
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
newbiegeek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 10h11   #6
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

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

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 11h36   #7
Futur Membre du Club
 
Inscription : août 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 36
Points : 16
Points : 16
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 :
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
newbiegeek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2007, 16h32   #8
Membre Expert
 
Avatar de beegees
 
Homme David Vincent (l'homme qui a vu les extra-terrestres)
Développeur Web
Inscription : mars 2004
Messages : 3 240
Détails du profil
Informations personnelles :
Nom : Homme David Vincent (l'homme qui a vu les extra-terrestres)
Âge : 37
Localisation : Belgique

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

Informations forums :
Inscription : mars 2004
Messages : 3 240
Points : 1 048
Points : 1 048
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
__________________
beegees est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 14h59   #9
Futur Membre du Club
 
Inscription : août 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 36
Points : 16
Points : 16
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...
newbiegeek est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h29.


 
 
 
 
Partenaires

Hébergement Web