Я веб-разработчик, работающий с государственными органами.Недавно я получил запрос на создание полностью индексируемого хранилища файлов с возможностью поиска для документов, используемых EMS, а также для общественности.Это протоколы для работы с сердечной недостаточностью, передозировками и другими чрезвычайными ситуациями. Никаких проблем там нет.
У меня проблема в том, чтобы найти решение для предоставления обновленных версий этих документов в автономном режиме.Хотя некоторые из этих протоколов хорошо известны, другие, например, Narcan, постоянно развиваются и меняются, и сотрудники EMS регулярно оказываются в ситуациях, когда доступ к Интернету может быть недоступен, поэтому мне нужен способ, чтобы эти документы были доступны на местном уровне.в автономном режиме, ежедневно загружается на свои устройства.Я полагаю, что они используют преимущественно телефоны Android, но я уверен, что там также есть устройства Apple.
В идеале, я хотел бы использовать сценарий для достижения этой цели, но я был бы в порядке с чем-тосторонние, которые также могут планировать повторяющиеся загрузки.
Документы хранятся в виде больших двоичных объектов.Страница, на которой я должен отображать документы, в настоящее время встраивает ответ в литерал (я использую ASP.NET) с помощью обработчика .ashx.Будет ли это работать, если я предоставлю .ashx в качестве URL-адреса непосредственно для загрузки?
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