Tengo un control FileUpload y un control DropDownlist en un UpdatePanel y cuando el usuario selecciona un archivo para el control FileUpload (sin carga aún), mientras tanto el usuario selecciona una opción del control DropDownList que causará una devolución de datos! Una vez realizada la devolución de página, la ruta seleccionada en el control FileUpload desaparecerá. ¿Cómo puedo seguir el camino en el control FileUpload? La función de carga de archivos estaba funcionando. Espero que pueda seguir siendo la ruta en el control FileUpload durante la devolución de datos.Mantener la ruta del control FileUpload después de la devolución
He intentado la solución a continuación, pero el "FileUpload1.HasFile" me devolverá falso.
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
pero el "Upload.HasFile" en la función de carga a continuación se cierto cuando se fue ejecutado.
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
Sí! ¡El menú desplegable necesita una devolución de datos! ¡De hecho, he hecho que la carga de archivos funcione dentro de un panel de actualización y funciona muy bien! –
¿Cómo lo hiciste funcionar? – adrianos
Agregué el "Page.Form.Attributes.Add (" enctype "," multipart/form-data ") en Page_Load y tengo un PostBackTrigger para el botón de carga. –