Я впервые пытался загрузить файлы через Ajax и .ashx. Я использую FireFox 75.0, и когда я смотрю на свою веб-консоль, я добавил точку останова на frm.append(files[i], files[i].name);
и вижу файл и / или файлы (входной файл имеет атрибут «множественный»), которые добавляются в FormData ( ) объект в моем сценарии. Элемент управления вводом файла (HTML5) имеет событие "onchange", которое вызывает javascript. JavaScript, кажется, работает правильно. Мой файл обработчика, однако, не видит HttpFileCollection. Я не могу понять, почему это не работает, поэтому мне нужна помощь.
Вот код страницы ASPX:
Вот мой код обработчика:
Imports System
Imports System.Web
Imports System.IO
Public Class UploadHandler : Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
context.Response.ContentType = "text/html"
Dim files As HttpFileCollection = context.Request.Files()
Dim UploadPath As String = ConfigurationManager.AppSettings("FormFileUpload")
'Dim strFiles As String = String.Empty
Try
If context.Request.Files.Count = 0 Then
context.Response.Write("<img src=""../../assets/img/NotAllowed.png"" alt="""" style=""margin-left: 5px; margin-right: 5px"" /> No Files Found!")
Else
For i As Integer = 0 To files.Count - 1
Dim file As HttpPostedFile = files(i)
Dim fname As String = String.Empty
fname = file.FileName
fname = Replace(fname, " ", "_") 'Replace spaces in file name
fname = Path.Combine(context.Server.MapPath(UploadPath), fname)
file.SaveAs(fname)
Next
context.Response.Write("<img src=""../../assets/img/CkMark.png"" alt="""" style=""margin-left: 5px"" />")
End If
Catch ex As Exception
context.Response.Write("<img src=""../../assets/img/NotAllowed.png"" alt="""" style=""margin-left: 5px; margin-right: 5px"" /> Error!" & ex.ToString())
End Try
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
В блоке Try Catch моего обработчика, где он проверяет количество файлов, он не видит файлы. Всегда возвращает "Файлы не найдены!" Когда я нажимаю на вкладку сети в своей веб-консоли, я вижу объекты файла - Content-Disposition: form-data; name = "[объектный файл]"
Test.docx
Буду очень признателен, если кто-нибудь скажет мне, что мне не хватает и как это исправить. Спасибо!