Telecharger un fichier dans un brower

Résolu
garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 9 décembre 2018 - 1 août 2012 à 11:20
garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Derniè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)

j'ai fouillé mais je trouve pas la solution

merci de m 'aider

nicolas

4 réponses

garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Derniè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

merci pour ton aide

nicolas
3
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
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.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
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.
0
garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 9 décembre 2018
2 août 2012 à 10:29
merci

je voulais télécharger un fichier et je cherchais le code vb.net pour le faire.
mais tout est bon maintent ca marche.

nicolas
0
Rejoignez-nous