Composant personnalisé pour l'upload de fichier
ça évite d'avoir à se retaper le code sur chaque page on y gagne pas mal de temp
Source / Exemple :
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.IO
<DefaultProperty("Text"), _
ToolboxData("<{0}:Upload runat=server></{0}:Upload>"), _
Description("The description for this confirm button")> _
Public Class Upload
Inherits System.Web.UI.WebControls.WebControl
Implements INamingContainer
Dim strDossierUpload As String
Dim strIdForm As String
Dim InputFile As New HtmlInputFile
'///////////////////
' Dossier d'upload
'///////////////////
<Bindable(True), Category("Divers"), DefaultValue(""), Description("Dossier ou va être uploader le fichier")> _
Property DossierUpload() As String
Get
Return strDossierUpload
End Get
Set(ByVal Value As String)
strDossierUpload = Value
End Set
End Property
'************************
'/// Id Formulaire ///
'************************
<Bindable(True), Category("Divers"), DefaultValue("Form2"), Description("Nom de l'ID du tag formulaire")> _
Property IdFormulaire() As String
Get
Return strIdForm
End Get
Set(ByVal Value As String)
strIdForm = Value
End Set
End Property
Private Sub btUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'**********************************************
'/// Upload le fichier sur le server ///
'**********************************************
Dim cheminAppli As String = Page.Request.PhysicalPath
Dim nomPage As String = Path.GetFileName(Page.Request.PhysicalPath)
Dim lng As Integer = cheminAppli.Length - nomPage.Length
cheminAppli = Left(cheminAppli, lng)
cheminAppli &= strDossierUpload
Dim fichier As String
If Not (InputFile.PostedFile Is Nothing) Then
Try
Dim postedFile = InputFile.PostedFile
Dim filename As String = Path.GetFileName(postedFile.FileName)
Dim contentType As String = postedFile.ContentType
Dim contentLength As Integer = postedFile.ContentLength
fichier = cheminAppli & "\" & filename
postedFile.SaveAs(fichier)
Catch exc As Exception
'LbErreur.Text = "Upload non réaliser"
End Try
End If
End Sub
'créer les sous controls
Protected Overrides Sub CreateChildControls()
Controls.Clear()
'Init btUpload
Dim btUpload As New HtmlInputButton("button")
btUpload.ID = "btUpload"
btUpload.Value = "btUpload" 'Upload
btUpload.Value = "btUpload" 'Upload
AddHandler btUpload.ServerClick, AddressOf btUpload_Click
Controls.Add(btUpload)
'Init InputFile
InputFile.ID = "uploadedFile"
InputFile.EnableViewState = True
InputFile.Name = "uploadedFile"
Controls.Add(InputFile)
End Sub
End Class
Conclusion :
Voila ça marche ;) vous ajoutez la dll du composant dans votre bin vous l'appeler dans votre page, vous la paramétrez et c'est finit :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.