У меня есть элемент управления FileUpload и элемент управления DropDownlist в UpdatePanel, и когда пользователь выбирает файл для элемента управления FileUpload (пока не загружается), между тем пользователь выбирает параметр из элемента управления DropDownList который вызовет обратную передачу! После обратной передачи страницы путь, выбранный в элементе управления FileUpload, исчезнет. Как я могу оставаться в элементе управления FileUpload? Была загружена функция загрузки файлов. Надеюсь, что этот путь останется в элементе управления FileUpload во время обратной передачи.Остаток пути управления FileUpload после обратной передачи
Я пробовал решение ниже, но «FileUpload1.HasFile» вернет мне ложь.
If Session("FileUpload1") Is Nothing AndAlso Upload.HasFile Then
Session("FileUpload1") = Upload
lblPhotoUploadErr.Text = Upload.FileName
ElseIf Session("FileUpload1") IsNot Nothing AndAlso (Not Upload.HasFile) Then
Upload = DirectCast(Session("FileUpload1"), FileUpload)
lblPhotoUploadErr.Text = Upload.FileName
ElseIf Upload.HasFile Then
Session("FileUpload1") = Upload
lblPhotoUploadErr.Text = Upload.FileName
End If
но «Upload.HasFile» в функции загрузки ниже будет true, когда он был выполнен.
Public Sub uploadPhoto()
Dim FileOK As Boolean = False
Dim FileSaved As Boolean = False
Dim CandidateCode As String = Nothing
Dim newFileName As String = Nothing
Dim extension As String = Nothing
Dim fileNameWithoutExt As String = Nothing
If txtCandidateCode.Text.Trim <> "" Then
CandidateCode = txtCandidateCode.Text.Trim
End If
If Upload.HasFile Then
Dim FileExtension As String = Path.GetExtension(Upload.FileName).ToLower
Dim allowedExtensions() As String = {".png", ".jpeg", ".jpg", ".gif"}
Dim i As Integer = 0
Do While (i < allowedExtensions.Length)
If (FileExtension = allowedExtensions(i)) Then
FileOK = True
End If
i = (i + 1)
Loop
End If
If FileOK Then
Try
fileNameWithoutExt = Path.GetFileNameWithoutExtension(Upload.FileName)
extension = Path.GetExtension(Upload.FileName)
newFileName = fileNameWithoutExt + "_" + CandidateCode + extension
Upload.PostedFile.SaveAs((path1 + newFileName))
FileSaved = True
Catch ex As Exception
lblPhotoUploadErr.Text = ("File could not be uploaded." + ex.Message.ToString)
FileSaved = False
End Try
Else
lblPhotoUploadErr.Text = "Cannot accept files of this type."
End If
If FileSaved Then
pnlUpload.Visible = False
imgPhoto.ImageUrl = ("~/images/" + newFileName)
hfPhotoUploadPath.Value = ("~/images/" + newFileName)
hfFileExtension.Value = extension
hfPhotoUploadFileName.Value = fileNameWithoutExt
End If
End Sub
Да! В раскрывающемся списке нужна обратная передача! На самом деле, я заставил файловую загрузку работать внутри панели обновления, и она отлично работает! –
Как вы это заработали? – adrianos
Я добавил «Page.Form.Attributes.Add» («enctype», «multipart/form-data») под страницей Page_Load и имеет кнопку PostBackTrigger для загрузки. –