vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: multipart/form-data an seite mittels POST übergeben 
Autor: brave@heart
Datum: 04.06.05 15:21

sorry, aber ich war heut morgen zu müde um drann zu bleiben.

Zitat:

Ja, aber wie fülle ich denn diese uploadfelder?
...über value nicht geschafft...
...anscheinden deaktiviert.


das ist richtig!
"Das Attribut value in Verbindung mit <input type="file">, mit dem das Vorbelegen der Dateiauswahl möglich wäre, wird von moderneren Browsern aus Sicherheitsgründen nicht mehr unterstützt."

deshalb muss hier ein trick angewandt werden.
das was der benutzer normalerweise selber macht, auf durchsuchen klicken, eine datei auswählen und auf öffnen klicken, muss durch entsprechenden code erledigt werden.
das klicken auf durchsuchen ist noch kein problem.
wir gehen alle input felder durch bis wir zum uploadfeld kommen und lassen klicken
    icount = WebBrowser1.Document.getElementsByTagName("input").Length
    For i = 0 To icount - 1
        If LCase(WebBrowser1.Document.getElementsByTagName("input")(i).Type) = _
          "file" Then
            WebBrowser1.Document.getElementsByTagName("input")(i).Click
            Exit For
        End If
    Next
dadurch öffnet sich der datei auswählen dialog (bei firefox nennt er sich datei uploaden)
wir benötigen einen timer der prüft ob der dialog geöffnet ist um dann das feld für den dateinamen zu füllen und dann auf öffnen zu klicken.
da vb während geöffnetem dialog pausiert und nicht weiter ausgeführt wird, erstellt man einen timer per api.
Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As _
  Long, ByVal lpTimerFunc As Long)
    hdl = FindWindowEx(0&, 0&, vbNullString, "Datei auswählen")
    If hdl = 0 Then Exit Sub
    hdl = FindWindowEx(hdl, 0&, "ComboBoxEx32", "")
    hdl = FindWindowEx(hdl, 0&, "ComboBox", "")
    hdl = FindWindowEx(hdl, 0&, "Edit", "")
    SetWindowText hdl, Form1.List1.List(currentfile)
    hdl = FindWindowEx(0&, 0&, vbNullString, "Datei auswählen")
    hdl = FindWindowEx(hdl, 0&, "Button", "Ö&ffnen")
    PostMessage hdl, WM_LBUTTONDOWN, 1, &H8001F
    PostMessage hdl, WM_LBUTTONUP, 0&, &H8001F
End Sub
nachdem der dialog per code "bedient" wurde und wieder geschlossen ist, fehlt nur noch das absenden des formulars.
da wie gesagt die anwendung pausiert während der dialog geöffnet ist, kann das absenden direkt nach dem öffnen des dialogs erfolgen.
    icount = WebBrowser1.Document.getElementsByTagName("input").Length
    For i = 0 To icount - 1
        If LCase(WebBrowser1.Document.getElementsByTagName("input")(i).Type) = _
          "file" Then
            WebBrowser1.Document.getElementsByTagName("input")(i).Click
[color=green]                            'dateiauswahl dialog öffnet sich und 
' anwendung pausiert dadurch hier
            WebBrowser1.Document.Forms(0).submit
            Exit For
        End If
    Next

mfg
brave@heart

...bis zur unendlichkeit und noch viel weiter...

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
multipart/form-data an seite mittels POST übergeben985kevink03.06.05 17:28
Re: multipart/form-data an seite mittels POST übergeben788brave@heart03.06.05 21:39
Re: multipart/form-data an seite mittels POST übergeben719kevink03.06.05 22:22
Re: multipart/form-data an seite mittels POST übergeben747brave@heart04.06.05 00:28
Re: multipart/form-data an seite mittels POST übergeben746kevink04.06.05 00:36
Re: multipart/form-data an seite mittels POST übergeben831brave@heart04.06.05 01:17
Re: multipart/form-data an seite mittels POST übergeben730kevink04.06.05 01:53
Re: multipart/form-data an seite mittels POST übergeben729brave@heart04.06.05 02:11
Re: multipart/form-data an seite mittels POST übergeben846kevink04.06.05 02:14
Re: multipart/form-data an seite mittels POST übergeben868brave@heart04.06.05 02:42
Re: multipart/form-data an seite mittels POST übergeben715kevink04.06.05 02:45
Re: multipart/form-data an seite mittels POST übergeben851brave@heart04.06.05 15:21
Re: multipart/form-data an seite mittels POST übergeben820kevink04.06.05 15:41

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel