Я создал страницу, которая позволяет пользователям загружать файлы на сервер с помощью элемента управления FileUpload и обрабатывать его событие с помощью этого кода
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
Это сработало нормально, я смог увидеть загружаемые файлы, и содержимое файлов осталось нетронутым (— это точная копия файла, загруженного пользователем ).
Теперь для загрузки файлов обратно пользователю (в более позднее время )я написал другую страницу, которая считывает имя файла из Request.Parameter («файл» )и выбирает этот файл для загрузки. пользователю. Я написал страницу Download.aspx для обработки загрузки в части ASP (, код не использовался ):
<%@ 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>
. Я попытался загрузить файлы изображений, а затем загрузить их снова, и это сработало нормально. Однако только когда я загружаю текстовые файлы, я получаю содержимое этого файла, дополненное некоторым содержимым HTML.
Вот пример файла, который я загрузил
Here is my sample text file
It consists of 3 lines only
А вот файл, когда я его скачал обратно
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>
Я пошел к файлу на сервере и открыл его, чтобы убедиться, что там есть дополнительный HTML-контент, но, как я уже сказал, файл был загружен отлично. Только когда он загружается, он содержит добавленный материал HTML.
Что я делаю неправильно? Что я могу сделать, чтобы этот дополнительный HTML-код исчез? Почему эта проблема затрагивает только текстовый файл, а не изображения, EXE, XLS, DOC и т. д.?