in

Web Formular ausfüllen; type="file"

Letzter Beitrag 01-26-2009 18:32 von Peter_Punkt. 2 Antworten.
Seite 1 von 1 (3 Treffer)
Beiträge sortieren: Zurück Weiter
  • 01-26-2009 16:24

    • Daniel Mohr
    • Top 100 Mitwirkender
    • Registriert am 12-29-2007
    • Visual Basic 2008 EE unter Windows XP Pro SP3
    • Beiträge 28

    Web Formular ausfüllen; type="file"

    Guten Tag alle miteinander,

    ich bin dabei für einen befreundeten Image Upload Service ein Tool zu schreiben.

    Soweit so gut, ich habe bereits in mehreren Projekten Webseiten Formulare erfolgreich genutzt doch bei dem jetzigen Projekt stehe ich vor einem Rätsel.

    Es geht um den Service der Webseite: www.jaypac.de

    Ich gehe wie folgt vor:

        Private Sub btnUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpload.Click

            wb.Navigate("http://www.jaypac.de/index.php") ' navigiere den WebBrowser URL

            Do While wb.ReadyState <> WebBrowserReadyState.Complete
                Application.DoEvents() ' DoEvents während die Webseite läd
            Loop

            WebsiteCompleted = 1 ' Die Variable WebsiteCompleted ist global deklariert als Integer

            wb.Document.Document.GetElementById("datei").InnerText = Filename ' es wird das Element 'datei' mit der Variable Filename gefüllt, Filename ist global deklariert und wird mit OpenFileDialog.Filename belegt
            wb.Document.GetElementById("agb").SetAttribute("checked", "checked") ' die ChechBox agb wird auf value checked gesetzt
            wb.Document.Forms(0).InvokeMember("submit") ' das Formular wird übergeben

            Do While wb.ReadyState <> WebBrowserReadyState.Complete
                Application.DoEvents() ' DoEvents während die Webseite läd
            Loop

            WebsiteCompleted = 2

        End Sub

        Private Sub wb_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted

            If WebsiteCompleted = 2 Then ' Wenn die Webseite ein zweites mal geladen wurde (passiert ja nach der Formular Übergabe) 
                Dim html As String = wb.Document.Body.InnerHtml ' Übergebe mir den InnerHtml Code an die Variable html
                MessageBox.Show(html) ' Gebe die Variable html mit einer MessageBox aus
                WebsiteCompleted = 0
            End If

        End Sub

    Nun folgendes Problem, das Textfeld wird nicht mit den erforderlichen Daten gefüllt.

    Liegt das daran dass der Typ des Textfeldes ein file Typ ist?

    Wie kann ich diesen Typ mit einer Value füllen?

     

    Vielen Dank im Voraus.

     

    Gruß

    Daniel Mohr

    Abgelegt unter:
    • IP-Adresse ist Registriert
  • 01-26-2009 17:18 Antwort zu

    • socke
    • Top 10 Mitwirkender
    • Registriert am 04-16-2007
    • VB.Net: Visual Studio 2008 EE
    • Beiträge 373

    AW: Web Formular ausfüllen; type="file"

    Ich habe bei de.selfhtml.org einmal nachgeschaut und das Attribut "value" scheint das richtige zu sein, um die Dateiauswahl zu belegen, doch habe ich auch folgenden Satz gefunden:

    de.selfhtml.org:
    Das Attribut value in Verbindung mit <input type="file">, mit dem das Vorbelegen der Dateiauswahl möglich wäre, wird von aktuellen Browsern aus Sicherheitsgründen nicht unterstützt.

    Anscheinend ist es nicht möglich über diese Weise das Formular auszufüllen.

    LG Lukas

    Wenn aus einem Raum mit sieben Leuten acht rausgehen, dann muss einer zurückkommen, damit keiner mehr drin ist.
    • IP-Adresse ist Registriert
  • 01-26-2009 18:32 Antwort zu

    • Peter_Punkt
    • Top 10 Mitwirkender
    • Registriert am 03-28-2007
    • VS 2008/10/12/13, VB.NET, C#, Office 2007, Win 7
    • Beiträge 2.481

    AW: Web Formular ausfüllen; type="file"

    Stimmt. Die Implementierung des Attributes 'value' ist laut W3C Standard nicht zwingend und ist daher von Browser zu Browser unterschiedlich.

    Ich habe nachfolgenden HTML-Code in den Text-Editor kopiert und beim Speichern mit der Endung '.html' versehen. Wenn man diese HTML-Datei mit Doppleklick öffnet so zeigt z.B. der Internet-Explorer den Wert des Attributes 'value' nicht an, obwohl er gestzt ist.

    Code-Beispiel: HTML-Datei für Testzwecke

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     <title>Form Test</title>
    </head>
    <body>
            <form action="upload.php" method="post" class="sel" enctype="multipart/form-data" >
                <input type="file" value="C:\Voreinstellung.jpg"/><br />
         <input type="submit" value="Hochladen" style="padding-left: 5px"/>
          </form>
    </body>
    </html>

    Zwar weiß ich viel, doch möcht' ich alles wissen.
    Dass ich erkenne, was die Welt im Innersten zusammenhält
    • IP-Adresse ist Registriert
Seite 1 von 1 (3 Treffer)