Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
740to744
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten an URL senden - Suche "HTML-Dolmetscher" !!!

Daten an URL senden - Suche "HTML-Dolmetscher" !!!
13.03.2006 12:53:29
Dirk70
Hallo zusammen,
ich habe eine VBA-Funktion geschrieben, die Tabellenblätter als XML-Dateien ausgibt. Diese Dateien können vom Benutzer später per HTML-Formular an ein PHP-Script im WWW gesendet werden. Funktioniert auch alles tadellos.
Jetzt kam die Anforderung, die Dateien schon direkt nach der Erstellung automatisch abzuschicken. Dazu starte ich zunächst den Internet Explorer mit der entsprechenden URL:

Function WebLink()
Dim pfad As String
Dim appIE As Object
pfad = "_URL/test_script.php"
Set appIE = CreateObject("InternetExplorer.Application")
With appIE
.Navigate pfad
.Visible = True
.Width = 400
.Height = 500
End With
End Function

Natürlich bringt das PHP-Script daraufhin eine Fehlermeldung, weil ich ja die zu verarbeitende Datei nicht mit angegeben habe. Und genau das ist mein Problem. Wie kann ich dem Script per VBA den Dateinamen mitgeben, so als ob er von einem HTML-Formular kommt? Als absoluter HTML-Newie habe ich einfach mal ausprobiert, was mir so in den Sinn kam:
pfad = "_URL/test_script.php C:\tmp\test.xml"
pfad = "_URL/test_script.php?file=C:\tmp\test.xml"
pfad = "_URL/test_script.php?uploadfile=C:\tmp\test.xml"
...
Hab leider kein Glück gehabt, immer die selbe Fehlermeldung. Kann mir jemand helfen?
Viele Grüße
Dirk
ps: Hier der Quellcode des HTML-Formulars:
_form action="_URL/test_script.php" method="post" enctype="multipart/form-data">
_input type="file" name="uploadfile">
_input type="submit" value="upload">
_>
Da muss ich nur den Dateinamen "C:\tmp\test.xml" eintragen und auf "upload" klicken.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten an URL senden - Suche "HTML-Dolmetscher" !!!
13.03.2006 15:52:12
Andreas
Hallo Dirk,
es hat schon seinen Grund, dass ein Upload nur über solch eine Abfrage funktioniert. Stell Dir mal vor es ginge einfach so über einen Link ohne Rückfrage, das wäre ein Durchbruch der Sicherheitseinstellungen. Dann könnte ja jede Webseite sich einfach per "Ausführen" eines Links beliebige lokale Dateien ziehen (wenn Dateiname + Pfad bekannt/erraten). Sei froh, dass es so nicht geht.
Alternativ ginge natürlich ein direkter Upload per ftp (siehe auch Recherche) auf den Server. Dazu bräuchtest Du natürlich das PW. Dann könnte auch ein angepasstes PHP-Script die Daten verarbeiten, weil es rechtemäßig Zugriff auf die hochgeladene Datei hat. Ist dann in Summe aber auch wiederum nicht der einfachste Weg.
Andreas
Anzeige
AW: Daten an URL senden - Suche "HTML-Dolmetscher" !!!
13.03.2006 16:24:37
Dirk70
Hallo Andreas,
Danke für die Antwort! Es leuchtet mir jetzt ein, dass es über HTML nicht gehen kann/darf. Aber wie sieht's mit VBA aus? Gibt es vielleicht eine Methode, mit der ich an das Objekt "InternetExplorer.Application" eine Datei übergeben kann, z.B.

Private Sub WebLink()
pfad = "_URL/test_script.php"
Set appIE = CreateObject("InternetExplorer.Application")
With appIE
.Navigate pfad
.Visible = True
>>>     .Data = "C:\tmp\test.xml"
End With
End Sub

Gruß
Dirk
AW: Daten an URL senden - Suche "HTML-Dolmetscher" !!!
13.03.2006 18:13:42
MichaV
Hi,
das wäre ein bischen zu einfach, was?
Ob es möglich ist hängt davon ab, welche Informationen der Quellcode der Abschicken- Seite hergibt. Um welche Seite handelt es sich denn?
Gruss- Micha
Anzeige
AW: Daten an URL senden - Suche "HTML-Dolmetscher" !!!
14.03.2006 12:41:34
Dirk70
Hi!
Hier ist nochmal der Quelltext (habe "_" vorne eingefügt, da sonst die Maske selbst angezeigt wird):
_form action="_URL/test_script.php" method="post" enctype="multipart/form-data">
_input type="file" name="uploadfile">
_input type="submit" value="upload">
_>
Sehr einfach gestricktes Formular, für den Zweck aber ausreichend. Zumindest hat sich noch kein User beschwert ;-) Irgendwie müsste es doch möglich sein, die gesendeten Daten in VBA so zu maskieren, dass das empfangende Script sie für die Ausgabe des oben beschriebenen Formulars hält..?
Alternativ: Ist es wnigstens möglich, im Eingabefeld des Formulars schon einen Dateinamen vorzublenden? Sorry, bin ne absolute Null in HTML...
Gruß
Dirk
Anzeige
Und hier die "Lösung" ;-)
14.03.2006 17:49:59
Dirk70

Function WebLink()
Dim pfad As String
Dim appIE As Object
pfad = "_formular.htm" 'das rudimentaere Eingabeformular...
Set appIE = CreateObject("InternetExplorer.Application")
With appIE
.Navigate pfad
.Visible = True
End With
SendKeys "{TAB}C:\tmp\test.xml{ENTER}"
End Function

Den Fachmann wird's grausen, aber der Zweck heiligt die Mittel. Es funktioniert! :-))
Danke & Gruß
Dirk

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige