garnier54
Messages postés158Date d'inscriptionmardi 17 janvier 2006StatutMembreDernière intervention 9 décembre 2018
-
1 août 2012 à 11:20
garnier54
Messages postés158Date d'inscriptionmardi 17 janvier 2006StatutMembreDernière intervention 9 décembre 2018
-
2 août 2012 à 10:29
boujour,
je voudrai dans mon programme asp.net vb.net recuperer les fichiers d un repertoire et pouvoir les telecharger dans mon brower (et eventuellement sur mon disque)
j'arrive à recuperer la liste de mes fichier et je les affiche dans une gridview, puis sur le select de la ligne je recupere le chemin.
tout marche bien jusque la voici mon code
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dir As New DirectoryInfo("C:\pdf")
GWliste.DataSource = dir.GetFiles("*.*")
GWliste.DataBind()
End Sub
Protected Sub GWliste_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GWliste.SelectedIndexChanged
' Get the currently selected row using the SelectedRow property.
Dim row As GridViewRow = GWliste.SelectedRow
' chemin
TextBox1.Text = "You selected " & row.Cells(6).Text & "."
End Sub
mais je voudrai ajouter ensuite dans le SelectedIndexChanged le load de mon fichier (dont je connais le nom et le chemin)
garnier54
Messages postés158Date d'inscriptionmardi 17 janvier 2006StatutMembreDernière intervention 9 décembre 2018 2 août 2012 à 09:24
bonjour,
Merci non load c'est pas afficher cest load =(charger)
mais c'est bon j'ai trouvé la solution en fouillant sur le net
je vous la livre ca peut servir a d autres personnes.
Protected Sub GWliste_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GWliste.SelectedIndexChanged
' Selection de la ligne
Dim row As GridViewRow = GWliste.SelectedRow
' chemin + fichier
Dim pathfile As String = row.Cells(5).Text
'nom du fichier
Dim file As String = row.Cells(1).Text
' load du fichier
Response.Clear()
' Response.ContentType = "application/octet-stream"
Response.AppendHeader("Content-Disposition", "attachment; filename=" + file)
Response.TransmitFile(pathfile)
Response.End()
End Sub
ca marche super bien j'ai fait l'essai avec des pdf,xls,doc etc
la ligne Response.ContentType = "application/octet-stream" je ne sais pas son utilité ? si je la top ca marche aussi
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 2 août 2012 à 08:51
Salut,
qu'appelle-tu "load du fichier dans le browser" ? L'y afficher ? Si oui, tous les fichiers ne sont pas interprétables par les browser.
Sinon, habituellement pour des fichiers téléchargeable (oui, que ce soit pour afficher dans ton navigateur ou enregistrer sur ton HD c'est la même chose) on les met disponibles à travers le serveur HTTP et on donne un lien direct vers la ressource.
Dans ton cas je ne sais pas si c'est que tu recherches. Si tu veux pouvoir envoyer un fichier non partagé il va falloir :
- lire le binaire du fichier côté serveur,
- remonter une réponse HTTP avec ce binaire, les bons HEADER et le bon MIME (dépendant du type de fichier envoyé).
Le client recevra alors le fichier tel que d'origine, qui s'ouvrira dans ton navigateur s'il sait les lire, ou qui sera proposé au téléchargement s'il ne sait pas.
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 2 août 2012 à 09:53
C'est la deuxième solution que j'ai proposée que tu utilises là ;)
Le content-type correspond à ce que j'appelle le MIME, là tu déclares qu'il s'agit de données binaires.
"Charger" n'a pas vraiment de sens dans ton cas. Tu transmets le fichier au client, il l'affiche ou le télécharge, sinon il se passe rien et la ressource reste sur le serveur. "Charger une ressource hors affichage/téléchargement" serait plutôt une pratique WinForm. Ou alors tu récupères ta ressource via Ajax et tu l'enregistres en localStorage, ce dont je doute.