Beim herunterladen einer Datei aus ASP .Net, die text-Datei wird angehängt mit HTML-Inhalt

Ich habe eine Seite, die ermöglicht Benutzern das hochladen von Dateien auf den server mit einem FileUpload-Kontrolle und Abwicklung Ihrer Veranstaltung mit diesem code

Sub SaveAttachment()
    Dim root As String = "C:\temp\"
    Dim filename As String = FileUpload1.FileName
    Dim SaveName As String = root & filename
    FileUpload1.SaveAs(SaveName)
End Sub

Dass geklappt hat, ich war in der Lage, um zu sehen Dateien immer hochgeladen, und den Inhalt der Dateien intakt ist (genau eine Kopie der Datei, die der Benutzer hochladen).

Nun für das herunterladen der Dateien an den Benutzer (später), die ich geschrieben habe eine andere Seite, liest den Dateinamen aus einer Anfrage.Parameter ("Datei") und holt sich die Datei heruntergeladen werden, um den Benutzer. Ich habe geschrieben, der Download.aspx-Seite zu behandeln herunterladen in der ASP-Teil (kein code behind verwendet wurde):

<%@ Import Namespace="System.IO"%>
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)

        Dim root As String = "C:\temp\"
        Dim filepath As String = Request.Params("file")
        If Not filepath Is Nothing Then
            filepath = root & filepath
            If File.Exists(filepath) And filepath.StartsWith(root) Then
                Dim filename As String = Path.GetFileName(filepath)
                Response.Clear()
                Response.ContentType = "application/octet-stream"
                Response.AddHeader("Content-Disposition", _
                  "attachment; filename=""" & filename & """")
                Response.Flush()
                Response.WriteFile(filepath)
            End If
        End If

End Sub
</script>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>

Habe ich versucht das hochladen von Bildern und Dateien und dann den Download erneut, und es funktionierte gut. Allerdings nur, wenn ich hochladen, text Dateien, dass ich den Inhalt der Datei angehängt mit einigen HTML-Inhalt.

Hier ist eine Beispiel-Datei, die ich hochgeladen habe
Beim herunterladen einer Datei aus ASP .Net, die text-Datei wird angehängt mit HTML-Inhalt

Here is my sample text file

It consists of 3 lines only

Und hier ist die Datei, wenn ich es heruntergeladen zurück
Beim herunterladen einer Datei aus ASP .Net, die text-Datei wird angehängt mit HTML-Inhalt

Here is my sample text file

It consists of 3 lines only
<form name="form1" method="post" action="FileDownload.aspx?file=sample_file.txt" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE5NTU5ODQyNTBkZNCYbOVZJDRUAOnIppQYkwHUSlb0" />
</div>

<span id="Label1">Label</span>
</form>

Ging ich auf die Datei auf dem server und öffnete es, um sicherzustellen, dass die zusätzliche HTML-Inhalte war es, aber wie gesagt, die Datei, die hochgeladen wurde perfekt. Nur, wenn es heruntergeladen wird, enthält es angehängt HTML-Zeug.

Was ich falsch mache? Was kann ich tun, um diese zusätzlichen HTML-code gehen?
Warum tritt das problem nur auf Text-Datei, nicht die Bilder, EXE, XLS, DOC , etc?

Ich bin nicht sicher, ob die Bilder, die ich hochgeladen zeigte sich, ich kann nicht scheinen, um zu wissen, wie man richtig Anzeige hochgeladenen screenshots, also ich habe ausgekippt, den Inhalt der Dateien manuell.
Ich denke, es ist eine Antwort.End(); fehlt... Und auch Weg.Kombinieren Sie bauen den kompletten Pfad an. Falls Sie keine Antwort.End(); der rest der Seite ist mark-up code wird umgewandelt in den HTML-code, den Sie sehen in Ihrem browser.
das ist richtig, wie im folgenden beantwortet.
Das ist die Sache mit stackoverflow - während der Eingabe entfernt, jeden jetzt und dann jemand anderes schneller ist 🙂

InformationsquelleAutor Ahmad | 2012-07-21

Schreibe einen Kommentar