只想将此功能与特定的文件扩展名(我定义)一起使用。我怎么能在ASP.net中这样做?
基本上,以下代码允许任何文件能够下载,只需将文件指向此页面.aspx?file={path to file + file}
我想要做的就是退出此文件,如果文件没有需要定义的数组的扩展名。例如:只希望通过以下代码下载以下扩展名:.jpg,.jpeg,.bmp,.png,.gif,.pdf,.doc,.docx
<%@ Page language="vb" runat="server" explicit="true" strict="true" %>
<script language="vb" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
Dim strRequest As String = Request.QueryString("file")
If strRequest <> "" Then
Dim path As String = Server.MapPath(strRequest)
Dim file As System.IO.FileInfo = New System.IO.FileInfo(path)
If file.Exists Then
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/octet-stream"
Response.WriteFile(file.FullName)
Response.End
Else
Response.Write("This file does not exist.")
End If
Else
Response.Write("Please provide a file to download.")
End If
End Sub
</script>
如何更改此选项以将此功能排除在处理所有文件扩展名之外,但列出的内容包括:.jpg,.jpeg,.bmp,.png,.gif,.pdf,.doc,.docx
我在想这里需要注意以下内容:If file.Exists Then
需要更改为:If file.Exists AND file.Extension...
答案 0 :(得分:0)
正如我在评论中提到的,你可以根据要求抓住它。对于多重比较,有一个绝对更优雅的解决方案,但是对于简单的情况,它可以工作:
Dim strRequest As String = Request.QueryString("file").ToLower
If strRequest <> "" AndAlso (strRequest.EndsWith(".jpg") OrElse strRequest.EndsWith(".jpeg") OrElse strRequest.EndsWith(".png") OrElse strRequest.EndsWith(".gif") OrElse strRequest.EndsWith(".pdf") Or strRequest.EndsWith(".doc") Or strRequest.EndsWith(".docx") Or strRequest.EndsWith(".bmp")) Then
'....
End If