PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Download einer quelle aus dem Inet


jhsmoky
14.07.2002, 23:47
Hi,

Ich möchte in meinem Programm etwas runterladen. In meinem Fall würde diese Datei server.met heißen und auf einem webserver liegen ( Ihr kennt die ja )

Mein Programm soll diese auf Knopfruck runterladen und in das selbe Verzeichniss speichern in dem auch mein Progam liegt.

Der name des servers (www.derserver/server.met) z.b. erhalte ich nicht durch eine Textbox sonderns als item in einer Listbox, in der sich noch mehrere andere server befinden und die auch ständig akualisiert wird.

Kurz: In der listbox ist die adresse und ich will diese durch knopfdruck runterladen.

Ich würde mich über jede Hilfe freuen

Danke Jörg


cYrus
15.07.2002, 07:20
nimm mal das Internet Control, damit geht das ganz einfach, da gibts ne Funktion namens GetURL. (schau sonst mal in der Hilfe) der Rest ist dann ja relativ simpel

so long
cYrus

jhsmoky
16.07.2002, 04:54
Danke erst mal

Das hier hat geklapt:

Dim BinFile() As Byte
Dim i As Long
Dim FF As Integer
Dim Datei As String
Dim strUrl As String
----------------------------------------------------------------------------------
Private Sub Command3_Click()
strUrl = "http://mitglied.lycos.de/eselmann2/Met/server.met"
Inet1.RequestTimeout = 100000

BinFile() = Inet1.OpenURL(strUrl, icByteArray)

Datei = "server.met"
FF = FreeFile

Open Datei For Binary As FF
For i = 0 To UBound(BinFile)
Put #FF, , BinFile(i)
Next i
Close #FF

leider wolte ich ja keine permanent URl runterladen sondern als item aus ner Listbox aber mit""" strUrl = "list1.selected" """
gehts net!

Help :)))


Danke

cYrus
16.07.2002, 07:29
ups.. war ja OpenURL und ned GetURL ;)

wegen der ListBox: mit selected bekommst du nur die ID der Auswahl du kannst sonst mit ListBox1.Text den Text auslesen und mit ListIndex die Auswahl definieren..

so long
cYrus

josch
10.01.2005, 18:05
geht das nicht irgendwie einfacher, wenn ich einfach nur ein Bild von einer externen quelle ( Inet ) laden will, bzw es runter laden und dann von VB auf der platte suchen lasse ?

butterkeks
10.01.2005, 22:22
Ich würde sagen, das inet control ist die trivialste Möglichkeit, die VB mit sich bringt

josch
10.01.2005, 22:30
sei es noch so simpel, ich weiß nicht wie es geht

ich habe es mir openURL versucht, weil ich das wo gelesen hatte, er kennt aber den befehlt URL nicht

hatte es mir oIE.GetObject versucht, er konnte mit dem pfad nix anfangen und hatte nichts in dem er das bild anzeigen konnte...

Ich weiß nicht wie es geht.

Ich muss nur ein Bild aus dem internet in mein form laden

uzge
10.01.2005, 23:39
doch geht mit dem ftp befehl "get"



Do
DoEvents
Loop Until Not Inet1.StillExecuting
Inet1.Execute , "get 1mbtest.txt c:\1mbtest.txt" `=>hier dann deine datei
txtausgabe.Text = txtausgabe.Text & Time & " FTP download Datei wird heruntergeladen :" & Inet1.ResponseInfo & vbCrLf

josch
11.01.2005, 00:25
thx




"get 1mbtest.txt c:\1mbtest.txt"
ist wo er es hinspeichert und ?

`=>hier dann deine datei
[/CODE]die URL von der die Datei geladen wird ?

Denial of Service
11.01.2005, 08:27
hmm... also ich würd´s so machen

echo open IP DES SERVERS MIT PORT>>c:\dudel.bat

(wenn´s n FTP ist noch)

echo anonymous>>c:\dudel.bat <-- sofern anonymer acc ansosnsten deine daten

echo anonymous@lol.com>>c:\dudel.bat <-- das gleiche wie oben

echo get DEINE DATEN>>c:\dudel.bat

echo quit>>c:\dudel.bat

und jetzt nur die dudel.bat starten

uzge
11.01.2005, 09:15
thx
ist wo er es hinspeichert und ?
die URL von der die Datei geladen wird ?

genau dann so : "get server.met c:\server.met "

"get server.met(<= deine datei auf dem server) c:\server.met " (<=und mit dem Befehl wird es local auf deinem pc gespeichert auf festplatte c,kannst auch umbenennen beim runterladen .z.b. dann in c:\server.meeet damit die vorhandene nicht überschrieben wird )


klar Denial of Service mit einer bat geht auch ,aber mit vb hat mann doch ein paar möglichkeiten mehr .

butterkeks
11.01.2005, 15:40
@uzge das geht aber nur über ftp, oder?

@thing
einfacher geht's so:

msgbox Inet1.OpenURL("http://blah.de/blah.txt", icString)

das war's eigentlich; Die msgbox zeigt den inhalt von http://blah.de/blah.txt.

Nun geht der Code von jhsmoky einen SChritt weiter und er speichert das ganze obendrein noch ab (OpenUrl() lädt das ganze nur in den Speicher, so weit), aber die grundlegende Vorgehensweise ist die selbe.
Man muss warsch. net unbedingt ein Byte Array nehmen, sondern kommt auch mit nem String zurecht, aber beim String wandelt VB das ganze noch in Unicode um, was Zeit kostet (VB arbeitet intern mit unicode).

Eine Zeile Code um eine Datei runter zu laden finde ich, wie gesagt, trivial

josch
11.01.2005, 16:46
@ Denial: Darauf komme ich später zurück

@uzge: wie genau schreib ich das ?

Inet1.Execute , "get test.jpg c:\test.jpg" "http://www.space.de/test.jpg"

geht nicht

uzge
12.01.2005, 16:39
@ Denial: Darauf komme ich später zurück

@uzge: wie genau schreib ich das ?

Inet1.Execute , "get test.jpg c:\test.jpg" "http://www.space.de/test.jpg"

geht nicht


glaube butterkeks hat recht geht glaube nur bei ftp servern ,
habe es an einem ftp server getestet der code unten geht bei ftp server.

Do
DoEvents
Loop Until Not Inet1.StillExecuting
Inet1.Execute , "get test.jpg c:\test.jpg"

josch
12.01.2005, 16:53
hö ?

hatte ganz übersehn, das butterkeks gepostet hat O_o

naja, bin wohl leicht im wahn.

Danke, ich teste es mal

josch
12.01.2005, 16:57
msgbox Inet1.OpenURL("http://blah.de/blah.txt", icString)



Eine Zeile ist tatsächlich recht simpel.

Aber das gnaze funktioniert nicht.

Er gibt einen debugg error aus "Object Required" und markiert die ganze Zeile

butterkeks
12.01.2005, 18:40
du hast warsch. kein inet control erstellt, oder keins mit dem Namen inet1

josch
12.01.2005, 19:05
was ist ein internet control, und wie mach ich das ? :/ :/ :/

butterkeks
12.01.2005, 20:55
du gehst auf Projekt->Komponenten und wählst aus der liste das "Microsoft Internet Transfer Control", wenn ich mich recht entsinne zumindest.

Du bekommst in deiner Control Palette eine neues Icon, das ist das Inet Control.

Einfach auf die Form ziehen und den Code von oben mal einfügen, sollte gehen (natürlich vorher noch den URL abändern)

Kann jedoch sein, dass das Control nicht bei allen Editionen dabei ist, ka

josch
12.01.2005, 22:11
hat funktioniert, dank dir.

blinky
14.07.2005, 06:17
Ich hab da noch ein Tip für euch :

Schaut mal unter
http://www.vbwelt.de/vb_welt/tools/show.asp?f=Allgemein%5CInternet+Files%2Exml

Dort könnt ihr ein Control runterladen.
Somit ist es möglich Dateien runterzuladen und zu speichern

Beispiel :

inetfile1.url ="http://www.Adresse.de/datei.jpg"
inetfile1.load "c:\Zielverzeichnis\Datei"


unter
http://www.vbwelt.de/vb_welt/tools/show.asp?f=Allgemein%5CInternet+Images.xml

gibt es ein Control wie das obengenante, aber speziell für Bilder.

Schaut es euch mal an.

Blinky

TGGC
14.07.2005, 08:29
Da bauen die Sprachen schon allen Mist ein, damit man alles Mögliche machen kann, ohne , wie in dem Fall, sich mit Hintergründen wie http Protokoll zu beschäftigen. Und trotzdem schaffen Personen wieder nicht, den vorgefertigten Krimskrams zu benutzen. Liegt das an mieser Doku oder sowas?


Bye, TGGC