Extraire nom du fichier apartir d'un url. [Résolu]

MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 22 août 2009 à 22:27 - Dernière réponse : MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention
- 25 août 2009 à 02:03
est ce que possible d'extraire un nom du ficher, apartir d'un lien, même si ce lien ne ce termine necessairement pas par le nom du ficher

c'est comme en utilisant IE, quant on click un lien de telechargement, un savefiledialog s'afficher, avec le nom du ficher à telechargé deja ecrit dans le textbox du savefiledialog.

merci.
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 août 2009 à 22:20
3
Merci
morceau de code vite fait :

        With System.Net.HttpWebRequest.Create("http://www.iconspedia.com/dload.php?up_id=37031")
            .Method = "HEAD"
            MsgBox(.GetResponse.Headers.ToString())
        End With


Renfield - Admin CodeS-SourceS - MVP Visual Basic

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de Renfield
Meilleure réponse
MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 25 août 2009 à 02:03
3
Merci
té vrément geniàl. j'ài essàyé de fàire une tite fonction :
    Private Function GetUriFileName(ByVal Uri As String) As String
        Dim req As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(Uri)
        req.Method = "HEAD"
        Dim headers As String = req.GetResponse.Headers.ToString()
        MsgBox(headers)
        Dim file As String = headers.Substring(headers.IndexOf("filename=") + 10)
        file = file.Substring(0, file.IndexOf(""""))
        Return file
    End Function


dommàge ke le mot "filename=" n'est pàs toujours trouver dàns les heàders, màis code à improuvé ^^
merci trés super.

ps: dzl pour là lànguge sms, mon clàvier bloke, à,ku,double v et bàeucoup d'àutre touche màrche pàs.

Merci MiharbiDoNo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de MiharbiDoNo
MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 23 août 2009 à 03:50
0
Merci
je m'explique +:
http://site.com/fichier.ext
on peut dire que c facile de deviné le nom ficher, c "fichier.ext"
mais si c comme sa :
http://site.com/download?=1351+azex;zae
comment on peut extraire le nom du fichier?
peut etre avec webrequest??
Commenter la réponse de MiharbiDoNo
MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 24 août 2009 à 13:45
0
Merci
bump pleaaase
Commenter la réponse de MiharbiDoNo
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 août 2009 à 14:07
0
Merci
possible via une regexp :

^.+/(\w+(?:\.\w+)?)(?:\?.+)?


http://site.com/download?=1351+azex;zae
http://site.com/fichier.ext

=> download
=> fichier.ext


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 24 août 2009 à 14:20
0
Merci
j'eté entrain de jouer un peut avec ce code, tous ce que j'ai trouver c WebRequest.RequestUri.IsFile, et ça marche pas :s
j'ai pas assez compris votre methode, vous pouvez me l'expliquer svp??
Commenter la réponse de MiharbiDoNo
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 août 2009 à 15:58
0
Merci
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MsgBox(GetURLFileName("http://site.com/download?=1351+azex;zae"))
        MsgBox(GetURLFileName("http://site.com/fichier.ext"))
    End Sub

    Private Function GetURLFileName(ByRef vsFilePath As String) As String
        With New System.Text.RegularExpressions.Regex("([.\w]+)(?:\?.+)?$").Match(vsFilePath)
            If .Success Then
                Return .Groups(1).Value
            End If
        End With
        Return String.Empty
    End Function
End Class


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 24 août 2009 à 16:13
0
Merci
merci Renfield pour votre reponse, mais la manipulation des string ne fait pas toujours le travaill (maintenant que j'ai compris le code ^^)

voila un exanple de lien:
http://www.iconspedia.com/dload.php?up_id=37031

si on insert ce lien dans la barre d'adresse d'un explorateur, un savefiledialog s'affichera, pour telecharger le fichier nommé "Maxthon.ico"

enfait le nom de fichier n'existe pas dans le lien, alors necessairement l'explorateur envoi une "request" qui retourne le nom du fichier "Maxthon.ico".

merci.
Commenter la réponse de MiharbiDoNo
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 août 2009 à 16:14
0
Merci
voir réponse HTTP:


HTTP/1.1 200 OK
Accept-Ranges: none
Date: Mon, 24 Aug 2009 14:14:21 GMT
Server: Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.9
X-Powered-By: PHP/5.2.9
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Disposition: attachment; filename="Maxthon.ico"
Content-Type: application/text
Content-Length: 370076
Proxy-Connection: Keep-Alive
Connection: Keep-Alive




Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 août 2009 à 16:18
0
Merci
suffit donc d'envoyer un :

HEAD /dload.php?up_id=37031 HTTP/1.0

au serveur www.iconspedia.com (port 80)
et zou...

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 24 août 2009 à 16:51
0
Merci
euh, j'ai trouvé des defficulté en essayant de convertir cette reponse http en string.
je c'est comment telecharger, mais comme un array de byte, ou le nom est specifier.
j'ai essayer avec un webbrowser, et document.getelementbyID("filename") (peut-etre??) mais envain. alors la je suis totalement blocké
Commenter la réponse de MiharbiDoNo
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 24 août 2009 à 17:34
0
Merci
non, c'est le header...

utilises un HttpWebRequest
ca va tout seul


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 24 août 2009 à 18:14
0
Merci
ahh. c aussi simple.
mais j'arrive a extraire le host est la connextion, aprés la repense, mais j'arrive pas a trouver le nom du fichier :s
Commenter la réponse de MiharbiDoNo
MiharbiDoNo 150 Messages postés dimanche 17 mai 2009Date d'inscription 25 mai 2012 Dernière intervention - 24 août 2009 à 18:58
0
Merci
j'ai encore cherché dans msdn j'ai trouver sa:
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.headers.aspx

mais sa marche pas avec les fichier a telechargé, j'arrive pas a extraire le nom.

on fait si quelqun peut m'aider, j'm interesse sur tou à l'extention du fichier.
merci beaucoup Renfield grâce a vous j'ai déjà appris beaucoup de choses.
Commenter la réponse de MiharbiDoNo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.