Хочу дать юзеру возможность просматривать лог файлы через ASP.NET
page.
Создал page которая даёт возможность выбрать фаил для просмотра.
После того как юзер выбрал фаил и кликнул на него, параметры файла передаются на другую страницу через URL. Появляется system Window спрашивающий или юзер хочет Save or Open file. Затем открывается фаил в Notepad.
Всё работает вроде как надо, кроме того что ASP добавляет в фаил HTML code страницы.
Например:
Содержание файла:
- Код: Выделить всё
~TCILOGFILE
*DEX COM Port 1
T6/9/2005 10:48:46 AM
- <- ENQ
- <- Inside Receive ID Data
--> DLE 0
- <- DLE SOH 4168840000SR01L01 DLE ETX 4
--> DLE 1
- <- EOT
После этого в фаил автоматически добавляется следующее
- Код: Выделить всё
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>FileDownload</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form name="Form1" method="post" action="FileDownload.aspx?file=C%3a%5cDownload%5cvbcode%5cDEXSerial%5cLogFiles%5cVendor+Three\DEX+COM+Port+1+2005-06-08+14-49.log" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDwtNjU0MzcyMTk1Ozs+ridFlK8/5Bq4kJgK4b/lrupdtrk=" />
</form>
</body>
</HTML>
Как избавиться от этого?
Вот код второй страницы
- Код: Выделить всё
Dim root As String = "C:\Download\vbcode\DEXSerial\LogFiles"
Dim filepath As String = Request.Params("file")
If Not filepath Is Nothing Then
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