Announcement

Collapse
No announcement yet.

Datei hochladen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datei hochladen

    Hallo zusammen!

    In meine Webapplication möcht ich dem Benutzer ermöglichen eine Datei hochzuladen, die ich dann irgenwo auf dem Webserver speichere. Mein Problem ist das ich keine ahnug hab wie das mit dem hochladen einer Datei funktioniert. Ich hoffe ihr könnt mir da weiterhelfen.

    Schon mal vielen Dank!

    Gruß,
    Franz

  • #2
    Hallo,

    das <b>HtmlInputFile</b>-Control aus dem .NET-Framework ist eine Kombination von einer TextBox und einem Durchsuchen-Button, um dem Anwender die Möglichkeit zu geben, eine Datei auf den Web Server hochzuladen. Dieses Control arbeitet mit dem Internet Explorer ab der Version 3.02 (und dazu kompatiblen Browsern) zusammen. Wenn dieses Control verwendet werden soll, muss die Web Form-Eigenschaft <b>Enctype</b> auf <b>multipart/form-data</B> gesetzt werden. Allerdings steht diese Eigenschaft nicht im Properties-Editor zur Verfügung, sondern muss in der HTML-Darstellung des Code Editor gesetzt werden:
    <pre>
    <p>&lt;form id=&quot;Form1&quot; method=&quot;post&quot; runat=&quot;server&quot; <font color="#FF0000">
    enctype=&quot;multipart/form-data&quot;</font>&gt;
    &lt;/form&gt;
    </pre>
    Das HtmlInputFile-Control löst keine Serverseitigen Ereignisse aus, so dass der Upload-Vorgang über den Submitt-Button ausgelöst wird.
    Die Implementierung in der ASP.NET-Seite könnte dann wie folgt aussehen (siehe <i>Toolbox | HTML | File Field</i> auf der Web Form ablegen, rechter Mausklick <b>Run As Server Control</b> - das Control aus dem Toolbox erhält dabei den Namen <i>File1</i>):
    <pre><font color="#0000ff">Private</font> <font color="#0000ff">Sub</font> Submit1_ServerClick(<font color="#0000ff">ByVal</font> sender <font color="#0000ff">As</font> System.Object, <font color="#0000ff">ByVal</font> e <font color="#0000ff">As</font> System.EventArgs) <font color="#0000ff">Handles</font> Submit1.ServerClick
    &nbsp; <font color="#0000ff">Dim</font> sSB <font color="#0000ff">As</font> <font color="#0000ff">New</font> System.Text.StringBuilder()
    &nbsp; <font color="#0000ff">If</font> <font color="#0000ff">Not</font> File1.PostedFile <font color="#0000ff">Is</font> <font color="#0000ff">Nothing</font> <font color="#0000ff">Then
    &nbsp;&nbsp;&nbsp; </font>sSB.Append(&quot;&lt;b&gt;Dateiname = &lt;/b&gt;&quot; &amp; File1.PostedFile.FileName &amp; &quot;&lt;br&gt;&quot
    &nbsp;&nbsp;&nbsp; sSB.Append(&quot;&lt;b&gt;ContentLength = &lt;/b&gt;&quot; &amp; File1.PostedFile.ContentLength &amp; &quot;&lt;br&gt;&quot
    &nbsp;&nbsp;&nbsp; sSB.Append(&quot;&lt;b&gt;ContentType = &lt;/b&gt;&quot; &amp; File1.PostedFile.ContentType &amp; &quot;&lt;br&gt;&quot
    &nbsp;&nbsp;&nbsp; File1.PostedFile.SaveAs(&quot;C:\Temp\UploadTest.t xt&quot
    &nbsp;&nbsp;&nbsp; sSB.Append(&quot;Datei wurde auf dem Server gespeichert&quot
    &nbsp; <font color="#0000ff">Else
    &nbsp;&nbsp;&nbsp; </font>sSB.Append(&quot;Sie haben keine Datei übergeben&quot
    &nbsp; <font color="#0000ff">End</font> <font color="#0000ff">If
    &nbsp; </font><font color="#008000">' Statusanzeige im Label (Run At Server)
    &nbsp; </font>DIV1.InnerHtml = sSB.ToString()
    <font color="#0000ff">End</font> <font color="#0000ff">Sub</pre>
    &#10

    Comment


    • #3
      Hallo,

      vielen dank für Ihre Antwort. Das ist genau das was ich gesucht hab.<br>
      wed es sofort ausprobieren.

      Gruß,<br>
      Fran

      Comment


      • #4
        Hallo,<br>
        <br>
        das mit dem Html-Steuerelement ist ja ganz nett aber mich stört die <br>zusätzliche textbox. Gibts da nicht auch eine Abwandlung von dem <br>FileOpenDialoge von den Windows Forms.<br>
        <br>
        Gruß,<br>
        Fran

        Comment


        • #5
          Hallo,

          die TextBox und der Durchsuchen-Button bilden eine Einheit, wobei die Aufgabe der TextBox auch in der visuellen Rückmeldung der zum Upload ausgewählten Datei besteht. Beim Anklicken des Durchsuchen-Buttons wird der "Datei auswählen"-Dialog von Windows angezeigt, so dass der Anwender den Dateipfad ja nicht "blind" eintippen muss

          Comment


          • #6
            Hallo,

            genau das habe ich im Prinzip auch gesucht.

            Nur eine Frage habe ich dazu noch:

            Dem InputFile-Control kann man nicht per .Value einen Wert bereits zuweisen, sodass der Anwender nicht eine Datei auswählen muss sondern dort bereits eine beim PageLoad stehen hat?
            Jedenfalls bleibt der Value nicht wenn ich in den Eigenschaften einen versuche zu setzen und auch in der PageLoad-Methode funktioniert das nicht.
            Wäre wohl ne Sicherheitslücke?

            Danke für Antworten

            Reik

            Comment


            • #7
              Hallo,

              &gt;Wäre wohl ne Sicherheitslücke?

              in der Tat, wobei es aber einen Browser (nicht von Microsoft) geben soll (ich müsste erst im Archiv kramen, um näheres sagen zu können), bei dem man so etwas unterschieben kann

              Comment

              Working...
              X