Accueil > > > UPLOADER UN FICHIER SANS COMPOSANT ! {NOUVELLE METHODE}
UPLOADER UN FICHIER SANS COMPOSANT ! {NOUVELLE METHODE}
Information sur la source
Description
Et oui, c'est possible ! Bon, pour éviter tout mal entendu, j'ai enlevé la méthode précédente car j'utilisais une fonction qui provenait semble-t-il de ASPToday. Stéphane Dorlac (Webmaster de Gasp) travaillant chez Wrox m'a demandé de retirer la source et pour éviter tout malentendu, je l'ai retirée et remplacée par une source que j'ai développé et qui n'a rien à voir avec la précédente) Voici une méthode made by Nix De A à Z ! Je l'ai faite sous forme d'une Class car c'est plus simple à utiliser comme ça. Il a quelques options, j'ai essayé de commenter un maximum. Essayez le, vous verrez, c'est pas sorcié à utiliser Je pense rajouter des options, si vous avez de bonnes idées, je suis preneur :) (UNE NOUVELLE VERSION PERMETANT DE RECUPERER DES CHAMPS TEXTE EN MEME TEMPS EST DISPO ICI http://www.aspfr.com/code.aspx?ID=8673 )
Source
- <!----------- Fichier uploadfichier.asp --------->
- <!--#include file="clsUplFich.asp"-->
- <%
- ' *****************************************************************************
- ' Réalisé par Nicolas SOREL ( Nix pour les intimes :) )
- ' Pour le site ASPFr.com
- ' Retrouvez d'autres scripts ASP sur www.ASPFr.com
- ' Vous avez le droit d'utiliser ce script dans vos pages mais si vous souhaitez
- ' l'exposer sur un autre site de programmation merci de me contacter
- ' (nix@codes-sources.com)
- ' *****************************************************************************
- %>
- <html>
- <head>
- <title>Envoyer des fichiers</title>
- </head>
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#0000FF" alink="#FF0000">
- <font face="Verdana" size="2" color="#000000">
- <%
- Select Case Request.Querystring("Etape")
- Case ""
- %>
- <div align="center">
- <form action="uploadfichier.asp?Etape=1" method="post" enctype="multipart/form-data">
- <br><br>
- Sélectionnez le(s) fichier(s) que vous souhaitez uploader.<br><br>
- <input type="file" name="Fichier1" accept="image/jpeg"><br>
- <input type="file" name="Fichier2" accept="image/jpeg"><br>
- <input type="file" name="Fichier3" accept="image/jpeg"><br>
- <input type="submit" value="Envoyer !">
- </form>
-
- </div>
- <%
- Case "1"
- Dim MonUpload
- Dim i
-
- Set MonUpload = New UplFichier
-
- ' .NbFichiers Retourne le nombre de fichiers Uploadé
- For i = 1 To MonUpload.NbFichiers
- Response.Write "<b>Fichier N° " & i & "</b><br>"
- ' NomFichier(ID) Retourne le nom du fichier uploadé
- Response.Write "Nom du fichier : <b>" & MonUpload.NomFichier(i) & "</b><br>"
- ' TailleFichier(ID) Retourne la taille du fichier uploadé
- Response.Write "Taille : <b>" & MonUpload.TailleFichier(i) & "</b> octets<br>"
- ' ExtensionFichier(ID) Retourne l'extension du fichier uploadé
- Response.Write "Extension : <b>" & MonUpload.ExtensionFichier(i) & "</b><br>"
- ' TypeFichier(ID) Retourne le type mime du fichier uploadé
- Response.Write "Type mime : <b>" & MonUpload.TypeFichier(i) & "</b><br>"
- ' NomForm(ID) Retourne le nom du champ dans lequel était le fichier uploadé
- Response.Write "Nom de l'Input : <b>" & MonUpload.NomForm(i) & "</b><br>"
- ' CheminFichierDistant(ID) Retourne le chemin distant sur lequel le fichier uploadé se trouvait
- Response.Write "Chemin distant : <b>" & MonUpload.CheminFichierDistant(i) & "</b><br><br>"
-
- ' .NouveauNom Optionnel , si vous souahitez forcer le nom du fichier en local
- ' Par défaut, le nom du fichier Uploadé sera utilisé
- ' Exemple :
- ' MonUpload.NouveauNom = "NouveauNomDuFichier.txt"
-
- ' SauveFichier(ID) sauvegarde le fichier Uploadé
- MonUpload.SauveFichier(i)
-
- ' ID représente le N° du fichier uploadé.
- ' Si vous n'avez qu'un champ pour uploader, alors le ID sera 1
- ' Dans cet Exemple, il y a plusieurs fichiers uploadé donc, je l'ai
- ' mis dans une boucle pour vous montrer comment faire
- Next
- Set MonUpload = Nothing
- End Select
- %>
- </font>
- </body>
- </html>
- <!----------- Fin Fichier uploadfichier.asp --------->
-
- <!----------- Fichier clsUplFich.asp --------->
- <%
- Option Explicit
-
- ' *****************************************************************************
- ' Cette Class a été réalisé par Nicolas SOREL ( Nix pour les intimes :) )
- ' Pour le site ASPFr.com
- ' Retrouvez d'autres scripts ASP sur www.ASPFr.com
- ' Vous avez le droit d'utiliser ce script dans vos pages mais si vous souhaitez
- ' l'exposer sur un autre site de programmation merci de me contacter
- ' (nix@codes-sources.com)
- ' *****************************************************************************
- Class UplFichier
-
- Private ToutEnvoi
-
- Private VarFichierBin
- Private VarTailleFichier
- Private VarTailleBinFichier
-
- Private NomDesFichier()
- Private TailleDesFichier()
- Private NbDeFichiers
- Private LesFichiers()
- Private NomDesForm()
- Private CheminLocal
- Private CheminDistant()
- Private LocalNomFichier
-
- Private Property Let AjoutNomFichier(LeNom)
- Redim Preserve NomDesFichier(Ubound(NomDesFichier) + 1)
- NomDesFichier(Ubound(NomDesFichier)) = LeNom
- End Property
-
- Private Property Let AjoutTailleFichier(LaTaille)
- Redim Preserve TailleDesFichier(Ubound(TailleDesFichier) + 1)
- TailleDesFichier(Ubound(TailleDesFichier)) = LaTaille
- End Property
-
- Private Property Let AjoutCheminDistant(LeCheminDistant)
- Redim Preserve CheminDistant(Ubound(CheminDistant) + 1)
- CheminDistant(Ubound(CheminDistant)) = LeCheminDistant
- End Property
-
- Private Property Let AjoutFichier(LeFichier)
- Redim Preserve LesFichiers(Ubound(LesFichiers) + 1)
- LesFichiers(Ubound(LesFichiers)) = LeFichier
- End Property
-
- Private Property Let AjoutNomForm(LeNomForm)
- Redim Preserve NomDesForm(Ubound(NomDesForm) + 1)
- NomDesForm(Ubound(NomDesForm)) = LeNomForm
- End Property
-
- Public Property Let Dossier(LeDossier)
- CheminLocal = LeDossier
- End Property
-
- Public Property Let NouveauNom(NouvNomFichier)
- LocalNomFichier = NouvNomFichier
- End Property
-
- Public Function SauveFichier(Lequel)
- On Error Resume Next
- Dim fso, fs
- If LocalNomFichier = "" Then
- LocalNomFichier = NomDesFichier(Lequel)
- End If
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set fs = fso.OpenTextFile(CheminLocal & LocalNomFichier, 2, True)
- If Err.Number <> 0 Then Response.Write "Erreur lors de l'écriture du fichier : " & CheminLocal & NomDesFichier(Lequel) & vbCrLf & Err.Description & "<br>":LocalNomFichier = "":Exit Function
- fs.Write LesFichiers(LeQuel)
- If Err.Number <> 0 Then Response.Write "Erreur lors de l'écriture du fichier : " & CheminLocal & NomDesFichier(Lequel) & vbCrLf & Err.Description & "<br>":LocalNomFichier = "":Exit Function
- Set fs = Nothing
- Set fso = Nothing
- LocalNomFichier = ""
- End Function
-
- Public Property Get NomFichier(Lequel)
- NomFichier = NomDesFichier(Lequel)
- End Property
-
- Public Property Get CheminFichierDistant(Lequel)
- CheminFichierDistant = CheminDistant(Lequel)
- End Property
-
- Public Property Get TailleFichier(Lequel)
- TailleFichier = TailleDesFichier(Lequel)
- End Property
-
- Public Property Get NomForm(Lequel)
- NomForm = NomDesForm(Lequel)
- End Property
-
- Public Property Get NbFichiers()
- NbFichiers = NbDeFichiers
- End Property
-
- Private Property Get HttpContentType()
- HttpContentType = Request.ServerVariables ("HTTP_CONTENT_TYPE")
- End Property
-
- Public Property Get TypeFichier(Lequel)
- TypeFichier = TypeDeFichier(NomDesFichier(Lequel))
- End Property
-
- Public Property Get ExtensionFichier(Lequel)
- ExtensionFichier = Right(NomDesFichier(Lequel), Len(NomDesFichier(Lequel)) - InStrRev(NomDesFichier(Lequel),"."))
- End Property
-
- Private Function Preliminaires()
- VarFichierBin = Request.BinaryRead(Request.TotalBytes)
- VarTailleBinFichier = LenB(VarFichierBin)
- End Function
-
- Private Sub Class_Initialize()
- ReDim NomDesFichier(0)
- ReDim LesFichiers(0)
- ReDim TailleDesFichier(0)
- Redim NomDesForm(0)
- ReDim CheminDistant(0)
- CheminLocal = Server.MapPath(".\") & "\" ' Dossier d'upload par defaut
- LocalNomFichier = "" ' Nom du fichier si l'on souhaite forcer un autre nom que le fichier envoyé
- Call Preliminaires
- Call LetsGOOOO
- End Sub
-
- Private Sub Class_Terminate()
- Set NomDesFichier = Nothing
- Set LesFichiers = Nothing
- Set TailleDesFichier = Nothing
- End Sub
-
- Private Function Upl2ADO()
- On Error Resume Next
- Upl2ADO = False
- Dim MonObjRs
- Set MonObjRs = CreateObject("ADODB.Recordset")
- MonObjRs.Fields.Append "TmpBin", 201, VarTailleBinFichier
- MonObjRs.Open
- MonObjRs.AddNew
- MonObjRs("TmpBin").AppendChunk VarFichierBin
- MonObjRs.Update
- ToutEnvoi = MonObjRs("TmpBin")
- MonObjRs.Close
- Set MonObjRs = Nothing
- If Err.Number <> 0 Then Response.Write "Erreur lors de l'upload du/des fichier(s) : " & vbCrLf & Err.Description & "<br>" : Exit Function
- Upl2ADO = True
- End Function
-
- Public Function LetsGOOOO()
- Dim LesLimites, LimitePosition
- Dim CompteFichier
- Dim DernierFichierDebut, DernierFichierFin, FichierEnCours
- Dim DebutNomFichier, FinNomFichier, NomDuFichier, DernierFichier
- Dim DebutFichier, FinFichier, DonneesDuFichier
- Dim LeContentType, TailleDuFichier, NomInput
-
- If Not VarTailleBinFichier > 0 Then
- Response.Write "Aucun fichier n'a été sélectionné"
- Exit Function
- End If
-
- If Upl2ADO = True Then
- ' On Récupère l'entête HTTP
- LesLimites = HttpContentType
-
- ' On met notre compteur de Fichier à 0
- CompteFichier = 0
-
- ' On cherche les limites (les Boundaries)
- LimitePosition = InStr(1, LesLimites, "boundary=") + 8
- LesLimites = "--" & Right(LesLimites, Len(LesLimites) - LimitePosition)
-
- ' ********************************************
- ' ** Les choses sérieuses commencent ici :) **
- ' ********************************************
-
- ' On cherche le 1er fichier
- DernierFichierDebut = InStr(1, ToutEnvoi, LesLimites)
- DernierFichierFin = InStr(InStr(1, ToutEnvoi ,LesLimites) + 1 , ToutEnvoi , LesLimites) - 1
- DernierFichier = False
-
- Do While DernierFichier = False
- FichierEnCours = Mid(ToutEnvoi, DernierFichierDebut, DernierFichierFin - DernierFichierDebut)
- DebutNomFichier = InStr(1, FichierEnCours, "filename=") + 10
- FinNomFichier = InStr(DebutNomFichier, FichierEnCours, Chr(34))
-
- ' On vérifie que le champ du fichier n'est pas vide
- If DebutNomFichier <> FinNomFichier Then
- CompteFichier = CompteFichier + 1
- ' On récupère le(s) nom(s) du/des champ(s) Input du formulaire
- NomInput = InStr(1, FichierEnCours, "name=""")
- If NomInput > 0 Then
- NomInput = Mid(FichierEnCours, NomInput + 6, InStr(NomInput + 6, FichierEnCours, """") - NomInput - 6)
- End If
- AjoutNomForm = NomInput
- 'Response.Write NomInput & "<br>"
-
- ' On récupère le chemin du fichier (distant) puis on extrait juste le non du fichier
- NomDuFichier = InStr(1, FichierEnCours, "filename=""")
- If NomDuFichier > 0 Then
- NomDuFichier = Mid(FichierEnCours, NomDuFichier + 10, InStr(NomDuFichier + 10, FichierEnCours, """") - NomDuFichier - 10)
- End If
- 'Response.Write NomDuFichier
-
- AjoutCheminDistant = NomDuFichier
- NomDuFichier = Right(NomDuFichier, Len(NomDuFichier) - InStrRev(NomDuFichier,"\"))
-
- ' On repère le début du fichier qui se trouve après le Content-Tpye
- LeContentType = InStr(1, FichierEnCours, "Content-Type:")
- If LeContentType > 0 Then
- DebutFichier = InStr(LeContentType, FichierEnCours, vbCrLf) + 4
- End If
- FinFichier = Len(FichierEnCours)
-
- ' Calcul de la taille du fichier
- TailleDuFichier = FinFichier - DebutFichier
-
- ' Recup. du fichier
- DonneesDuFichier = Mid(FichierEnCours, DebutFichier, TailleDuFichier)
-
- AjoutFichier = DonneesDuFichier
- AjoutNomFichier = NomDuFichier
- AjoutTailleFichier = Len(DonneesDuFichier) 'LaTaille
- End If
- ' On va au fichier suivant
- ' On repère le début et la fin du fichier suivant
- DernierFichierDebut = InStr(DernierFichierFin + 1, ToutEnvoi, LesLimites)
- DernierFichierFin = InStr(DernierFichierDebut + 1 , ToutEnvoi, LesLimites) - 1
- If Not DernierFichierFin > 0 Then DernierFichier = True
- Loop
- NbDeFichiers = CompteFichier
- ' ************************
- ' ** La Fin du bazar :) **
- ' ************************
-
- Else
- Response.Write "Il y a eu une erreur lors de l'upload"
- End If
-
- End Function
-
- Private Function TypeDeFichier(LeFichier)
- Dim TmpExt
- TmpExt = Right(LeFichier, Len(LeFichier) - InStrRev(LeFichier,"."))
- Select Case LCase(TmpExt)
- Case "jpg", "jpeg"
- TypeDeFichier = "image/jpeg"
- Case "gif"
- TypeDeFichier = "image/gif"
- Case "png"
- TypeDeFichier = "image/png"
-
- Case "txt"
- TypeDeFichier = "text/plain"
- Case "asp"
- TypeDeFichier = "text/asp"
- Case "html", "htm"
- TypeDeFichier = "text/html"
- Case "xml"
- TypeDeFichier = "text/xml"
-
- Case "doc"
- TypeDeFichier = "application/msword"
- Case "doc"
- TypeDeFichier = "application/vnd.ms-excel"
- Case "pdf"
- TypeDeFichier = "application/pdf"
-
- Case "exe"
- TypeDeFichier = "application/x-msdownload"
- Case "zip"
- TypeDeFichier = "application/x-compressed"
- Case "rar"
- TypeDeFichier = "application/x-rar-compressed"
-
- Case "mp3", "mp2"
- TypeDeFichier = "audio/mpeg"
- Case "au"
- TypeDeFichier = "audio/basic"
- Case "wav"
- TypeDeFichier = "audio/x-wav"
-
- Case "mpg", "mpeg"
- TypeDeFichier = "video/mpeg"
- Case "avi"
- TypeDeFichier = "video/avi"
- ' Liste non exhaustive, vous pouvez en rajouter autant que vous voulez
-
- Case Else
- TypeDeFichier = "application/unknown"
- End Select
- End Function
-
- End Class
- %>
- <!----------- Fin Fichier clsUplFich.asp --------->
<!----------- Fichier uploadfichier.asp --------->
<!--#include file="clsUplFich.asp"-->
<%
' *****************************************************************************
' Réalisé par Nicolas SOREL ( Nix pour les intimes :) )
' Pour le site ASPFr.com
' Retrouvez d'autres scripts ASP sur www.ASPFr.com
' Vous avez le droit d'utiliser ce script dans vos pages mais si vous souhaitez
' l'exposer sur un autre site de programmation merci de me contacter
' (nix@codes-sources.com)
' *****************************************************************************
%>
<html>
<head>
<title>Envoyer des fichiers</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#0000FF" alink="#FF0000">
<font face="Verdana" size="2" color="#000000">
<%
Select Case Request.Querystring("Etape")
Case ""
%>
<div align="center">
<form action="uploadfichier.asp?Etape=1" method="post" enctype="multipart/form-data">
<br><br>
Sélectionnez le(s) fichier(s) que vous souhaitez uploader.<br><br>
<input type="file" name="Fichier1" accept="image/jpeg"><br>
<input type="file" name="Fichier2" accept="image/jpeg"><br>
<input type="file" name="Fichier3" accept="image/jpeg"><br>
<input type="submit" value="Envoyer !">
</form>
</div>
<%
Case "1"
Dim MonUpload
Dim i
Set MonUpload = New UplFichier
' .NbFichiers Retourne le nombre de fichiers Uploadé
For i = 1 To MonUpload.NbFichiers
Response.Write "<b>Fichier N° " & i & "</b><br>"
' NomFichier(ID) Retourne le nom du fichier uploadé
Response.Write "Nom du fichier : <b>" & MonUpload.NomFichier(i) & "</b><br>"
' TailleFichier(ID) Retourne la taille du fichier uploadé
Response.Write "Taille : <b>" & MonUpload.TailleFichier(i) & "</b> octets<br>"
' ExtensionFichier(ID) Retourne l'extension du fichier uploadé
Response.Write "Extension : <b>" & MonUpload.ExtensionFichier(i) & "</b><br>"
' TypeFichier(ID) Retourne le type mime du fichier uploadé
Response.Write "Type mime : <b>" & MonUpload.TypeFichier(i) & "</b><br>"
' NomForm(ID) Retourne le nom du champ dans lequel était le fichier uploadé
Response.Write "Nom de l'Input : <b>" & MonUpload.NomForm(i) & "</b><br>"
' CheminFichierDistant(ID) Retourne le chemin distant sur lequel le fichier uploadé se trouvait
Response.Write "Chemin distant : <b>" & MonUpload.CheminFichierDistant(i) & "</b><br><br>"
' .NouveauNom Optionnel , si vous souahitez forcer le nom du fichier en local
' Par défaut, le nom du fichier Uploadé sera utilisé
' Exemple :
' MonUpload.NouveauNom = "NouveauNomDuFichier.txt"
' SauveFichier(ID) sauvegarde le fichier Uploadé
MonUpload.SauveFichier(i)
' ID représente le N° du fichier uploadé.
' Si vous n'avez qu'un champ pour uploader, alors le ID sera 1
' Dans cet Exemple, il y a plusieurs fichiers uploadé donc, je l'ai
' mis dans une boucle pour vous montrer comment faire
Next
Set MonUpload = Nothing
End Select
%>
</font>
</body>
</html>
<!----------- Fin Fichier uploadfichier.asp --------->
<!----------- Fichier clsUplFich.asp --------->
<%
Option Explicit
' *****************************************************************************
' Cette Class a été réalisé par Nicolas SOREL ( Nix pour les intimes :) )
' Pour le site ASPFr.com
' Retrouvez d'autres scripts ASP sur www.ASPFr.com
' Vous avez le droit d'utiliser ce script dans vos pages mais si vous souhaitez
' l'exposer sur un autre site de programmation merci de me contacter
' (nix@codes-sources.com)
' *****************************************************************************
Class UplFichier
Private ToutEnvoi
Private VarFichierBin
Private VarTailleFichier
Private VarTailleBinFichier
Private NomDesFichier()
Private TailleDesFichier()
Private NbDeFichiers
Private LesFichiers()
Private NomDesForm()
Private CheminLocal
Private CheminDistant()
Private LocalNomFichier
Private Property Let AjoutNomFichier(LeNom)
Redim Preserve NomDesFichier(Ubound(NomDesFichier) + 1)
NomDesFichier(Ubound(NomDesFichier)) = LeNom
End Property
Private Property Let AjoutTailleFichier(LaTaille)
Redim Preserve TailleDesFichier(Ubound(TailleDesFichier) + 1)
TailleDesFichier(Ubound(TailleDesFichier)) = LaTaille
End Property
Private Property Let AjoutCheminDistant(LeCheminDistant)
Redim Preserve CheminDistant(Ubound(CheminDistant) + 1)
CheminDistant(Ubound(CheminDistant)) = LeCheminDistant
End Property
Private Property Let AjoutFichier(LeFichier)
Redim Preserve LesFichiers(Ubound(LesFichiers) + 1)
LesFichiers(Ubound(LesFichiers)) = LeFichier
End Property
Private Property Let AjoutNomForm(LeNomForm)
Redim Preserve NomDesForm(Ubound(NomDesForm) + 1)
NomDesForm(Ubound(NomDesForm)) = LeNomForm
End Property
Public Property Let Dossier(LeDossier)
CheminLocal = LeDossier
End Property
Public Property Let NouveauNom(NouvNomFichier)
LocalNomFichier = NouvNomFichier
End Property
Public Function SauveFichier(Lequel)
On Error Resume Next
Dim fso, fs
If LocalNomFichier = "" Then
LocalNomFichier = NomDesFichier(Lequel)
End If
Set fso = CreateObject("Scripting.FileSystemObject")
Set fs = fso.OpenTextFile(CheminLocal & LocalNomFichier, 2, True)
If Err.Number <> 0 Then Response.Write "Erreur lors de l'écriture du fichier : " & CheminLocal & NomDesFichier(Lequel) & vbCrLf & Err.Description & "<br>":LocalNomFichier = "":Exit Function
fs.Write LesFichiers(LeQuel)
If Err.Number <> 0 Then Response.Write "Erreur lors de l'écriture du fichier : " & CheminLocal & NomDesFichier(Lequel) & vbCrLf & Err.Description & "<br>":LocalNomFichier = "":Exit Function
Set fs = Nothing
Set fso = Nothing
LocalNomFichier = ""
End Function
Public Property Get NomFichier(Lequel)
NomFichier = NomDesFichier(Lequel)
End Property
Public Property Get CheminFichierDistant(Lequel)
CheminFichierDistant = CheminDistant(Lequel)
End Property
Public Property Get TailleFichier(Lequel)
TailleFichier = TailleDesFichier(Lequel)
End Property
Public Property Get NomForm(Lequel)
NomForm = NomDesForm(Lequel)
End Property
Public Property Get NbFichiers()
NbFichiers = NbDeFichiers
End Property
Private Property Get HttpContentType()
HttpContentType = Request.ServerVariables ("HTTP_CONTENT_TYPE")
End Property
Public Property Get TypeFichier(Lequel)
TypeFichier = TypeDeFichier(NomDesFichier(Lequel))
End Property
Public Property Get ExtensionFichier(Lequel)
ExtensionFichier = Right(NomDesFichier(Lequel), Len(NomDesFichier(Lequel)) - InStrRev(NomDesFichier(Lequel),"."))
End Property
Private Function Preliminaires()
VarFichierBin = Request.BinaryRead(Request.TotalBytes)
VarTailleBinFichier = LenB(VarFichierBin)
End Function
Private Sub Class_Initialize()
ReDim NomDesFichier(0)
ReDim LesFichiers(0)
ReDim TailleDesFichier(0)
Redim NomDesForm(0)
ReDim CheminDistant(0)
CheminLocal = Server.MapPath(".\") & "\" ' Dossier d'upload par defaut
LocalNomFichier = "" ' Nom du fichier si l'on souhaite forcer un autre nom que le fichier envoyé
Call Preliminaires
Call LetsGOOOO
End Sub
Private Sub Class_Terminate()
Set NomDesFichier = Nothing
Set LesFichiers = Nothing
Set TailleDesFichier = Nothing
End Sub
Private Function Upl2ADO()
On Error Resume Next
Upl2ADO = False
Dim MonObjRs
Set MonObjRs = CreateObject("ADODB.Recordset")
MonObjRs.Fields.Append "TmpBin", 201, VarTailleBinFichier
MonObjRs.Open
MonObjRs.AddNew
MonObjRs("TmpBin").AppendChunk VarFichierBin
MonObjRs.Update
ToutEnvoi = MonObjRs("TmpBin")
MonObjRs.Close
Set MonObjRs = Nothing
If Err.Number <> 0 Then Response.Write "Erreur lors de l'upload du/des fichier(s) : " & vbCrLf & Err.Description & "<br>" : Exit Function
Upl2ADO = True
End Function
Public Function LetsGOOOO()
Dim LesLimites, LimitePosition
Dim CompteFichier
Dim DernierFichierDebut, DernierFichierFin, FichierEnCours
Dim DebutNomFichier, FinNomFichier, NomDuFichier, DernierFichier
Dim DebutFichier, FinFichier, DonneesDuFichier
Dim LeContentType, TailleDuFichier, NomInput
If Not VarTailleBinFichier > 0 Then
Response.Write "Aucun fichier n'a été sélectionné"
Exit Function
End If
If Upl2ADO = True Then
' On Récupère l'entête HTTP
LesLimites = HttpContentType
' On met notre compteur de Fichier à 0
CompteFichier = 0
' On cherche les limites (les Boundaries)
LimitePosition = InStr(1, LesLimites, "boundary=") + 8
LesLimites = "--" & Right(LesLimites, Len(LesLimites) - LimitePosition)
' ********************************************
' ** Les choses sérieuses commencent ici :) **
' ********************************************
' On cherche le 1er fichier
DernierFichierDebut = InStr(1, ToutEnvoi, LesLimites)
DernierFichierFin = InStr(InStr(1, ToutEnvoi ,LesLimites) + 1 , ToutEnvoi , LesLimites) - 1
DernierFichier = False
Do While DernierFichier = False
FichierEnCours = Mid(ToutEnvoi, DernierFichierDebut, DernierFichierFin - DernierFichierDebut)
DebutNomFichier = InStr(1, FichierEnCours, "filename=") + 10
FinNomFichier = InStr(DebutNomFichier, FichierEnCours, Chr(34))
' On vérifie que le champ du fichier n'est pas vide
If DebutNomFichier <> FinNomFichier Then
CompteFichier = CompteFichier + 1
' On récupère le(s) nom(s) du/des champ(s) Input du formulaire
NomInput = InStr(1, FichierEnCours, "name=""")
If NomInput > 0 Then
NomInput = Mid(FichierEnCours, NomInput + 6, InStr(NomInput + 6, FichierEnCours, """") - NomInput - 6)
End If
AjoutNomForm = NomInput
'Response.Write NomInput & "<br>"
' On récupère le chemin du fichier (distant) puis on extrait juste le non du fichier
NomDuFichier = InStr(1, FichierEnCours, "filename=""")
If NomDuFichier > 0 Then
NomDuFichier = Mid(FichierEnCours, NomDuFichier + 10, InStr(NomDuFichier + 10, FichierEnCours, """") - NomDuFichier - 10)
End If
'Response.Write NomDuFichier
AjoutCheminDistant = NomDuFichier
NomDuFichier = Right(NomDuFichier, Len(NomDuFichier) - InStrRev(NomDuFichier,"\"))
' On repère le début du fichier qui se trouve après le Content-Tpye
LeContentType = InStr(1, FichierEnCours, "Content-Type:")
If LeContentType > 0 Then
DebutFichier = InStr(LeContentType, FichierEnCours, vbCrLf) + 4
End If
FinFichier = Len(FichierEnCours)
' Calcul de la taille du fichier
TailleDuFichier = FinFichier - DebutFichier
' Recup. du fichier
DonneesDuFichier = Mid(FichierEnCours, DebutFichier, TailleDuFichier)
AjoutFichier = DonneesDuFichier
AjoutNomFichier = NomDuFichier
AjoutTailleFichier = Len(DonneesDuFichier) 'LaTaille
End If
' On va au fichier suivant
' On repère le début et la fin du fichier suivant
DernierFichierDebut = InStr(DernierFichierFin + 1, ToutEnvoi, LesLimites)
DernierFichierFin = InStr(DernierFichierDebut + 1 , ToutEnvoi, LesLimites) - 1
If Not DernierFichierFin > 0 Then DernierFichier = True
Loop
NbDeFichiers = CompteFichier
' ************************
' ** La Fin du bazar :) **
' ************************
Else
Response.Write "Il y a eu une erreur lors de l'upload"
End If
End Function
Private Function TypeDeFichier(LeFichier)
Dim TmpExt
TmpExt = Right(LeFichier, Len(LeFichier) - InStrRev(LeFichier,"."))
Select Case LCase(TmpExt)
Case "jpg", "jpeg"
TypeDeFichier = "image/jpeg"
Case "gif"
TypeDeFichier = "image/gif"
Case "png"
TypeDeFichier = "image/png"
Case "txt"
TypeDeFichier = "text/plain"
Case "asp"
TypeDeFichier = "text/asp"
Case "html", "htm"
TypeDeFichier = "text/html"
Case "xml"
TypeDeFichier = "text/xml"
Case "doc"
TypeDeFichier = "application/msword"
Case "doc"
TypeDeFichier = "application/vnd.ms-excel"
Case "pdf"
TypeDeFichier = "application/pdf"
Case "exe"
TypeDeFichier = "application/x-msdownload"
Case "zip"
TypeDeFichier = "application/x-compressed"
Case "rar"
TypeDeFichier = "application/x-rar-compressed"
Case "mp3", "mp2"
TypeDeFichier = "audio/mpeg"
Case "au"
TypeDeFichier = "audio/basic"
Case "wav"
TypeDeFichier = "audio/x-wav"
Case "mpg", "mpeg"
TypeDeFichier = "video/mpeg"
Case "avi"
TypeDeFichier = "video/avi"
' Liste non exhaustive, vous pouvez en rajouter autant que vous voulez
Case Else
TypeDeFichier = "application/unknown"
End Select
End Function
End Class
%>
<!----------- Fin Fichier clsUplFich.asp --------->
Conclusion
P.S : Cette fois, je veux pas entendre parler que ce source serait déjà sur un autre site parce que : 1) C'est pas possible :) 2) J'ai passé la soirée et la nuit à le faire :(
Historique
- 10 décembre 2005 10:34:39 :
- .
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Upload du fichier avec Class UplFichier de Nix [ par maida5 ]
Bonjour,j'utilise upload de fichier de Nix avec le class UplFichier. Quand je fais upload de deux images en même temps ça marche très bien. Après ça,
pb sur upload de fichier en asp.net avec c# [ par amorosalain ]
SAMPour des clients qui veulent transférer des fichiers de grosses taille sur le serveur, j'ai mis en place un service de ftp via un site web. Po
[ASP.NET][C#]taille de l'upload limiter [ par EvilDef ]
boujour a tous,j'ai un probleme avec ma page d'envoi de fichier (pour q'un utilisateur puisse envoyer un fichier sur mon ftp)j'ai le même pr
Upload fichier [ par fdthierry ]
Bonjour à tous,J'ai pris le code proposé à cette adresse <SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font
Upload avec commentaire [ par kclaude ]
Hello,Etant novice dans l'asp et voulant quelque chose qui me parait assez difficile (enfin pour moi vue mon niveau pour le moment) je me tourne donc
Supprimer un fichier apres un upload [ par flo_yopyop ]
Voila, je vous explique : - jai créer une page ASP.net pour uploader des fichiers - tout fonctionne bien, le fichier et copier ds le dossier vo
probleme Uploader Fichier [ par sergiodonini ]
Bonjour M.Nix, j'ai un petit probleme quand j'upload un fichier sur le serveur iis. je me suis servi de votre code qui se trouve sur l'adresse s
Upload fichier [ par ProphetKy ]
Bonjour à tous,je voudrais faire un beau module d'upload de fichier vers le serveur.Mais je n'arrive pas à rendre certaines actions de l'uti
problème d'upload [ par legoland ]
Salut à tous,J'utilise AspSmartUpload et lorsque j'uploade mon fichier sur le serveur sof que le fichier créé pèse 1ko et ne peux pas être lu. Pourtan
Upload fichier via ftp dans une page ASP.NET [ par RubMic ]
Voila, je suis très très débutant dans ce domain, mais je dois faire une application qui dois envoi une image sur mon serveur WEB et je ne sais pas co
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Forum
SCRIPTSCRIPT par nadialadypower
Cliquez pour lire la suite par nadialadypower
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|