Ho un controllo FileUpload e un controllo DropDownlist in un UpdatePanel e quando l'utente seleziona un file per il controllo FileUpload (nessun caricamento ancora), nel frattempo l'utente seleziona un'opzione dal controllo DropDownList che causerà un postback! Una volta che il postback della pagina, il percorso selezionato nel controllo FileUpload sarà andato. Come posso mantenere il percorso nel controllo FileUpload? Funzionava la funzione di caricamento dei file. Spero possa rimanere il percorso nel controllo FileUpload durante il postback.Percorso residuo del controllo FileUpload dopo il postback
Ho provato la soluzione in basso ma "FileUpload1.HasFile" restituirà false a me.
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
ma il "Upload.HasFile" nella funzione di caricamento sottostante sarà true quando è stato eseguito.
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ì! Il menu a discesa richiede il postback! In realtà, ho fatto il fileupload per funzionare all'interno di un updatepanel e funziona benissimo! –
Come hai fatto a farlo funzionare? – adrianos
Ho aggiunto "Page.Form.Attributes.Add (" enctype "," multipart/form-data ")" in Page_Load e ho un PostBackTrigger per il pulsante di caricamento. –