我是与政府机构合作的网络开发人员。最近,我接到要求为EMS和公众使用的文档建立一个完全可搜索的索引文件存储库。这些是处理心力衰竭,用药过量和其他紧急情况的协议,在那里没有问题。
我的问题是想出一种解决方案,以离线提供那些文档的最新版本。尽管其中一些协议已经确立,但其他协议(例如,Narcan)正在不断发展和变化,并且EMS工作人员经常处在无法随时访问Internet的情况下,因此我需要一种方法来使这些文件在本地可用离线,每天下载到他们的设备。我相信他们主要使用Android手机,但是我敢肯定那里也有苹果设备。
理想情况下,我想使用脚本来完成此操作,但是我也希望第三方也可以安排重复下载。
文档存储为斑点。我现在要显示文档的页面当前使用.ashx处理程序将响应嵌入到文字(我正在使用ASP.NET)中。如果我直接提供.ashx作为下载网址,是否可以使用?
Public Sub ProcessRequest(context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim id As Integer = context.Request("Id")
Dim bytes As Byte()
Dim fileName As String
Dim constr As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
context.Response.Buffer = True
context.Response.Charset = ""
Using con As New SqlConnection(constr)
Using cmd As New SqlCommand()
cmd.CommandText = "SELECT DocumentFile, Name FROM Documents WHERE DocumentID=@Id"
cmd.Parameters.AddWithValue("@Id", id)
cmd.Connection = con
con.Open()
Using sdr As SqlDataReader = cmd.ExecuteReader()
sdr.Read()
bytes = DirectCast(sdr("DocumentFile"), Byte())
fileName = sdr("Name").ToString() + ".pdf"
End Using
con.Close()
End Using
End Using
If context.Request.QueryString("download") = "1" Then
context.Response.AppendHeader("Content-Disposition", Convert.ToString("attachment; filename=") & fileName)
End If
context.Response.Cache.SetCacheability(HttpCacheability.NoCache)
context.Response.ContentType = "application/pdf"
context.Response.BinaryWrite(bytes)
context.Response.Flush()
context.Response.[End]()
End Sub