Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UPLOADER UN FICHIER SANS COMPOSANT V2.0


Information sur la source

Catégorie :Fichiers/Disque Classé sous : upload, fichier, multiple, champ, texte Niveau : Initié Date de création : 18/07/2001 Date de mise à jour : 10/12/2005 10:36:01 Vu / téléchargé: 27 731 / 1 193

Note :
8,1 / 10 - par 21 personnes
8,10 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (31)
Ajouter un commentaire et/ou une note


Description

Pas grand chose de plus que la version précédente à part une petite option mais pas des moindres :) qui permet de récupérer des champs de type text, textaera, checkbox, radio, etc... en même temps que l'upload d'un fichier.

Cela faisait un certain temps que l'on me demandait comment faire, j'avais pas trouvé le temps avant de m'y pencher et comme j'ai eu besoin de cette option pour un projet, j'ai pris le temps de le faire et donc de vous en faire profiter au passage :)
La version précédente se trouve sur cette page : http://www.aspfr.com/code.aspx?id=8645
 

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>
  • FICHIER1 : <input type="file" name="Fichier1" accept="image/jpeg"><br>
  • FICHIER2 : <input type="file" name="Fichier2" accept="image/jpeg"><br>
  • FICHIER3 : <input type="file" name="Fichier3" accept="image/jpeg"><br>
  • TEXTE : <input type="text" name="txttest"><br>
  • TEXTAERA : <textarea cols="" rows="" name="txtarea"></textarea><br>
  • <input type="submit" value="Envoyer !">
  • </form>
  • </div>
  • <%
  • ' On Error Resume Next
  • 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
  • %>
  • <font color="#FF0000">
  • <%
  • ' .ChampForm(NomDuChamp) permet de récupérer un Champ texte,
  • ' il fonctionne comme l'Objet Request()
  • %>
  • <b>TEXTE : </b><%=MonUpload.ChampForm("txttest")%><br>
  • <b>TEXTAERA : </b><%=MonUpload.ChampForm("txtarea")%><br>
  • </font>
  • <%
  • Set MonUpload = Nothing
  • End Select
  • %>
  • </font>
  • </body>
  • </html>
  • <!----------- Fin Fichier uploadfichier.asp --------->
  • <!----------- Fichier clsUplFich.asp --------->
  • <!--#include file="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 NomChampTXT()
  • Private LesChampTXT()
  • Private Property Let AjoutChampTXT(LeTxt)
  • Redim Preserve LesChampTXT(Ubound(LesChampTXT) + 1)
  • LesChampTXT(Ubound(LesChampTXT)) = LeTxt
  • End Property
  • Private Property Let AjoutChampNOM(LeNom)
  • Redim Preserve NomChampTXT(Ubound(NomChampTXT) + 1)
  • NomChampTXT(Ubound(NomChampTXT)) = LeNom
  • End Property
  • 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 ChampForm(Lequel)
  • For i = 1 To UBound(NomChampTXT)
  • If NomChampTXT(i) = Lequel Then
  • ChampForm = LesChampTXT(i)
  • Exit For
  • End If
  • Next
  • End Property
  • 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)
  • Redim LesChampTXT(0)
  • Redim NomChampTXT(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()
  • ' J'ai mis ces lignes en commentaire car des fois, il me dit type incompatible ?!?
  • '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
  • Dim EstFichier
  • 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
  • ' On récupère le chemin du fichier (distant) puis on extrait juste le non du fichier
  • NomDuFichier = InStr(1, FichierEnCours, "filename=""")
  • EstFichier = False
  • If NomDuFichier > 0 Then
  • EstFichier = True
  • NomDuFichier = Mid(FichierEnCours, NomDuFichier + 10, InStr(NomDuFichier + 10, FichierEnCours, """") - NomDuFichier - 10)
  • End If
  • ' Ici la petite astuce, on vérifie si cet "input" contient un Fichier
  • If EstFichier = True Then
  • 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
  • Else
  • ' C'est ici que cela se passe pour récupérer les valeurs
  • ' tapées dans un champ text, textaera, radio button, checkbox etc...
  • CompteFichier = CompteFichier - 1
  • DebutFichier = InStr(InStr(1, FichierEnCours, "name=""") + 6, FichierEnCours, """") + 5
  • FinFichier = Len(FichierEnCours)
  • ' Calcul de la taille du texte
  • TailleDuFichier = FinFichier - DebutFichier
  • ' Recup. du texte
  • DonneesDuFichier = Mid(FichierEnCours, DebutFichier, TailleDuFichier)
  • AjoutChampNOM = NomInput
  • AjoutChampTXT = DonneesDuFichier
  • End If
  • 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 "log"
  • TypeDeFichier = "text/plain"
  • 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>
    FICHIER1 : <input type="file" name="Fichier1" accept="image/jpeg"><br>
    FICHIER2 : <input type="file" name="Fichier2" accept="image/jpeg"><br>
    FICHIER3 : <input type="file" name="Fichier3" accept="image/jpeg"><br>
	TEXTE : <input type="text" name="txttest"><br>
	TEXTAERA : <textarea cols="" rows="" name="txtarea"></textarea><br>
    <input type="submit" value="Envoyer !">
</form>
</div>
<%
'	On Error Resume Next
		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
			%>
			<font color="#FF0000">
			<%
				' .ChampForm(NomDuChamp) permet de récupérer un Champ texte, 
			 	' il fonctionne comme l'Objet Request()
			%>
			<b>TEXTE : </b><%=MonUpload.ChampForm("txttest")%><br>
			<b>TEXTAERA : </b><%=MonUpload.ChampForm("txtarea")%><br>
			</font>
			<%
			Set MonUpload = Nothing
	End Select
	%>	
</font>
</body>
</html>
<!----------- Fin Fichier uploadfichier.asp --------->

<!----------- Fichier clsUplFich.asp --------->
<!--#include file="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 NomChampTXT()
	Private LesChampTXT()
	
	Private Property Let AjoutChampTXT(LeTxt)
		Redim Preserve LesChampTXT(Ubound(LesChampTXT) + 1)
		LesChampTXT(Ubound(LesChampTXT)) = LeTxt
	End Property

	Private Property Let AjoutChampNOM(LeNom)
		Redim Preserve NomChampTXT(Ubound(NomChampTXT) + 1)
		NomChampTXT(Ubound(NomChampTXT)) = LeNom
	End Property

	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 ChampForm(Lequel)
		For i = 1 To UBound(NomChampTXT)
			If NomChampTXT(i) = Lequel Then
				ChampForm = LesChampTXT(i)
				Exit For
			End If
		Next
	End Property

	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)
		Redim LesChampTXT(0)
		Redim NomChampTXT(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()
		' J'ai mis ces lignes en commentaire car des fois, il me dit type incompatible ?!?
		'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
		Dim EstFichier
		
		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
					
					' On récupère le chemin du fichier (distant) puis on extrait juste le non du fichier
		    		NomDuFichier = InStr(1, FichierEnCours, "filename=""")
					EstFichier = False
		    		If NomDuFichier > 0 Then
						EstFichier = True
		    			NomDuFichier = Mid(FichierEnCours, NomDuFichier + 10, InStr(NomDuFichier + 10, FichierEnCours, """") - NomDuFichier - 10)
		    		End If
				
					' Ici la petite astuce, on vérifie si cet "input" contient un Fichier
					If EstFichier = True Then
						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

					Else
						' C'est ici que cela se passe pour récupérer les valeurs 
						' tapées dans un champ text, textaera, radio button, checkbox etc...
						CompteFichier = CompteFichier - 1
						DebutFichier = InStr(InStr(1, FichierEnCours, "name=""") + 6, FichierEnCours, """") + 5
			    		FinFichier = Len(FichierEnCours)

					    ' Calcul de la taille du texte
			    		TailleDuFichier = FinFichier - DebutFichier

					    ' Recup. du texte
			    		DonneesDuFichier = Mid(FichierEnCours, DebutFichier, TailleDuFichier)

						AjoutChampNOM = NomInput
						AjoutChampTXT = DonneesDuFichier
					End If
				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 "log"
                TypeDeFichier = "text/plain"

            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

Voilà, amusez-vous bien :)

Nix
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

10 décembre 2005 10:36:01 :
.

Commentaires et avis

signaler à un administrateur
Commentaire de Sickfrid le 08/01/2002 14:33:14

ce code est vraiment excellent mais une ptite question quand meme ! Peut-on avoir le nom de l'input file ? parceque mes input file sont éparpillés dans un formulaire au milieu de plusieurs autres input...

Merci ! ! ! ! !

PS : ssvp c'est assez urgent...

signaler à un administrateur
Commentaire de sdh le 21/01/2002 12:00:31

Ton code est super bien fichu. Code clair, indetation impécable, RAD.
Si j'ai trouvé une erreur de copier / coller, dans la fin de ton code dans la fonction "type de fichier", le type d'extention d'un fichier excel est xls, mais tout le monde aura rectifier de lui même

Merci pour pour code et pour ton site

signaler à un administrateur
Commentaire de netjl le 01/02/2002 10:01:37

Salut Nix je tente de laisser un message ici aussi, car c'est cette version que j'utilise, j'ai mis ton script sur un serveur de site internet distant, et j'ai le message suivant :

Fichier N° 1
Nom du fichier : essai.txt
Taille : 65 octets
Extension : txt
Type mime : text/plain
Nom de l'Input : Fichier1
Chemin distant : C:Mes documentsessai.txt

Erreur lors de l'écriture du fichier : D:Inetpubwwwrootenlimousindossieressai.txt Permission refusée
TEXTE : essai texte
TEXTAERA : essai text area

Comment faire pour que ton pgm prenne mon chemin de serveur en compte et non D:inetpub ...etc.

Merci

signaler à un administrateur
Commentaire de JaySee le 12/04/2002 12:52:07

Ton script est super bien foutu et surtout surper facile a comprendre mais g un chti bleme...

Lorsque j'essai ta page d'exemple car marche nickel et g bien mon fichier d'ecrit sur le serveur, mais si je passe par un formulaire a moi un peu plus complet je me retrouve avec:

Erreur d'exécution Microsoft VBScript (0x800A0009)
Indice en dehors de la plage: 'Lequel'
/FR/Perso/clsUplFich.asp, line 112

(correspond a l:
L111: Public Property Get TailleFichier(Lequel)
L112: TailleFichier = TailleDesFichier(Lequel)
L113: End Property

sinon desfois g aussi:
Argument ou appel de procédure incorrect: 'Mid'
fichier:clsUplFich.asp à la ligne :DonneesDuFichier = Mid(FichierEnCours, DebutFichier, TailleDuFichier)

strange car avec ton formulaire ca pase nickel...

T'en pense koi?

Merci

signaler à un administrateur
Commentaire de MarxKarl le 22/04/2002 15:19:13

j'ai essaye ce script et il est tout bonnement fabuleux. seul PB, sur ma station NT4 + SP6 + IIS ca marche nickel mais sur mon server NT4 + SP4 + IIS ca ne marche pas !!!
j'en devien fou ... qu'ai je oublier d'installer (je ne peut pas rebooter le server il est en cour de fonctionnement)

merci de votre aide.

signaler à un administrateur
Commentaire de MarxKarl le 22/04/2002 15:22:43

PS : j'ai installer M$ script et ca ne vien pas de la.
(WARNING : M$ script est necessaire pour realiser des classes avec NT4 + SP6 + IIS)

j'ai reelement besoin d'aide.

signaler à un administrateur
Commentaire de theryu le 29/04/2002 17:58:53

Bonjour,

Félicitation pour ce code génial, cependant, il contient un petit hic : le nom des input files renvoyés ne correspond pas toujours à ceux des fichiers liés.

Explication :
- si je laisse la page d'exemple tel quel, et que j'envoie trois fichiers, tout ce déroule normalement : le nom de l'input de mon premier fichier s'appelle bien fichier1, celui de mon deuxième fichier2, etc.
- si en revanche je n'envoie que deux fichiers dans les input 'fichier2' et 'fichier3', j'obtiens que le nom de l'input du premier fichier est 'fichier1' (au lieu de 'fichier2')et celui du deuxième 'fichier2' (au lieu de 'fichier3')

En fait, le nom de l'input qui est renvoyé est le nom de l'input correspondant à l'indice du fichier (si on traite le premier fichier c'est le nom du premier input du formulaire qui sera renvoyé, même si ce n'est pas un input file!)

Voilà, voilà... quelqu'un aurait-il une solution SVP ?

signaler à un administrateur
Commentaire de Rackham le 04/06/2002 10:49:16

Je me trompe peut-être mais est-ce normal que tu inclue un fichier dans lui-même ?

&lt;!----------- Fichier clsUplFich.asp ---------&gt;
&lt;!--#include file="clsUplFich.asp"--&gt;
&lt;%
Option Explicit

De plus chez moi, l'Option Explicit me renvoie une erreur :

Type d'erreur :
Erreur de compilation Microsoft VBScript (0x800A0400)
Instruction attendue
/test/clsUplFich.asp, line 4
Option Explicit

Sinon, merci bien pour ce code, ca marche nickel...

signaler à un administrateur
Commentaire de y0m le 05/06/2002 11:39:30

Je regardais le code source de l'exemple hier et j'ai remarqué une "erreur" qui correspond à un des posts ci dessus

' NomForm(ID) Retourne le nom du champ dans lequel était le fichier uploadé
Response.Write "Nom de l'Input : &lt;b&gt;" & MonUpload.NomForm(i) & "&lt;/b&gt;&lt;br&gt;"

Ce n'est vrai que dans le cas où les input de type file sont placés en tout premier dans le formulaire.
S'ils sont placés en fin, on obtient le nom d'un autre champ (tout dépend de l'organisation du formulaire).

Personnellement, je proposerais d'ajouter un tableau à la class "NomDesInputFiles()", ainsi que les méthodes associées à l'ajout et à la lecture.

Pour les habitués de aspSmartUpload, on voit que dans un cas comme celui de l'exemple fournit avec cette classe, 3 éléments de type "File" sont créés au sein de l'objet aspSmartUpload, et ce même si on n'a pas choisi de fichier pour l'un des 3 inputs.
Ici, la class ne crée d'élément "file" que si l'input contient quelque chose. Donc, si je rentre un fichier dans l'input "fichier2", la class crée un fichier et est accessible par :
MonUpload.NomFichier(1)

Enfiin, beau travail tout de même, ça mérite quelques améliorations mais c'est une class très pratique quand on sait que aspSmartUpload a tendance à "planté" à la création de l'objet alors que l'installation, les droits, l'accès à la DLL sont corrects.

signaler à un administrateur
Commentaire de konogan le 06/06/2002 11:13:12

tout d'abord felicitaions pour ce sript tres pratique, tout fonctionne a merveille chez moi.

j'ai juste une petite question :

comment faire en sorte que le fichier uploadé le soit sur un autre serveur que celui qui execute la page ?
en l'occurence dans un repertoire ftp sur un serveur independant.

signaler à un administrateur
Commentaire de vinygrr le 01/07/2002 12:01:51

ca marche parfaitement(j'ai evidemment fais des petites adaptations pour mon confort perso!!!)...WOOOAWW...merci Nix!;-)
juste une remarque...si le fichier que l'on upload existe deja on ecrase le fichier existant...y a pas un moyen pour dans ce cas la renommer le fichier???

signaler à un administrateur
Commentaire de cellofan le 09/07/2002 09:40:09

Salut Monsieur Nix et ts les autres. J'ai essayé ton script qu a tout d'abord très bien fonctionné, mais il me fait maintenant la même erreur qu'à "Djean", c'est à dire :
Argument ou appel de procédure incorrect: 'Mid'
fichier:clsUplFich.asp à la ligne :DonneesDuFichier = Mid(FichierEnCours, DebutFichier, TailleDuFichier)

Donc du coup, ca ne marche plus... Voilà, si qqu'un a une suggestion sur la question... Merci d'avance.

signaler à un administrateur
Commentaire de lutinpitchoune le 01/10/2002 13:11:16

Salut niX,

Avant tout, meme si on te l'as déjà dit, ton code est super,
je l'ai un peu modifier pour réaliser des tests avant d'enregistrer définitivement le fichier sur le site.
En fait j'utilise ton code pour enregistré mes fichiers dans un repertoire temp/
et après si les tests sont bons je déplace les fichiers de temp/ à upload/.
Cette technique m'a permis de ne pratiquement pas changer ton code.

Chez moi tout marche super, j'ai eu des problemes avec l'OPTION EXPLICIT,
mais j'ai tout réglé en definissant bien toutes mes variables.
Donc sur mon ordi chez moi ça marche, par contre au bureau, ca plante.
le premier formulaire s'affiche, je rentre les données, j'envoie et là ça plante et j'ai l'erreur suivante :

Erreur d'exécution Microsoft VBScript erreur '800a01b6'
Cet objet ne gère pas cette propriété ou cette méthode: 'Request.TotalBytes'

/wwwcna-mocom/clsUplFich.asp, ligne 132

Et elle se répete deux fois.
La ligne 132 correspond à :
Private Sub Class_Initialize()
ReDim NomDesFichier(0)
ReDim LesFichiers(0)
ReDim TailleDesFichier(0)
Redim NomDesForm(0)
ReDim CheminDistant(0)
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt; Redim LesChampTXT(0) &lt;&lt;&lt;&lt;&lt;&lt;&lt;Cette ligne

Sur le serveur j'ai pas encore pu essayer
car il faut que mon hebergeur modifie les droits d'acces au repertoire ou j'ai ma base de données,
mais j'ai peur que le même probleme se pose, même de temps en temps.

Si tu vois de quoi ça peut venir, dis le moi.
D'avance merci
Lutin Pitchoune

Au fait :
Mon installation chez moi :
Windows 95
Internet explorer 5
PWS v4.0 (je crois)
Au boulot :
Windows NT 4 Workstation
Internet explorer 5
Internet Information Server 2.0 version 4.0

signaler à un administrateur
Commentaire de xclear le 04/02/2003 00:01:11

ca marche super merci nix pour ce code juste une info serai t'il possible en plus de remplir un champs d'une base en même temps que le telechargement????
merci ecrivez a xclear@noos.fr
xclear vous remercie et vous salut

signaler à un administrateur
Commentaire de alouillet le 13/05/2003 14:44:24

Comme tout le monde, exactement ce que je voulais.

2 petites choses :
- Faire un fs.close pour les puristes dans SauveFichier

- Ajouter un Dim I dans Property Get ChampForm(Lequel) car si on ne fait pas ça et qu'on appel cette méthode dans la boucle de uploadFichier.asp cela interagit avec la variable I de la boucle.

Merci nix pour le gain de temps énorme

signaler à un administrateur
Commentaire de jayzee le 12/06/2003 17:01:23

ouep merci pour ce tres bon code !!

ca tourne nickel, bon moi aussi j'ai des petits soucis car mes input text sont positionnés avant les inputs file.
du coup je ne recupere jamais le bon nom de l'input et c po pratique pour le sauver en base.
mais bon c po grave, je vais essayer de trouver une parade.

en tous cas merci pour ce code

signaler à un administrateur
Commentaire de jayzee le 12/06/2003 17:24:04

Bon bah j'ai fait comme yOm a dit :

g ajouter un tableau NomDesFile()
ainsi kune propriete AjoutNomFile(LeNomFile)
et kune autre propriete NomFile(Lequel)

Ensuite dans la fonction LetsGOOOO, apres la ligne :
If EstFichier = True Then

j'ajoute le nom de l'input dans mon nouveau tableau :
AjoutNomFile = NomInput

et hop le tour est joué :)

signaler à un administrateur
Commentaire de Bruto le 17/12/2003 11:33:08

J'ai testé la source et elle marche bien lorsque je ne dispose que du &lt;input type="file" name="Fichier1" accept="image/jpeg"&gt; mais lorsque je rajoute un champ &lt;input name="Titre" type="text" value="" size="50"&gt; dans la page alors j'ai le même problème que Djean & cellofan

c'est à dire :
Argument ou appel de procédure incorrect: 'Mid'
fichier:clsUplFich.asp à la ligne :DonneesDuFichier = Mid(FichierEnCours, DebutFichier, TailleDuFichier)

Si quelqu'un a su intégré un champ texte. qu'il me dis comment il a fait. Merci

signaler à un administrateur
Commentaire de Bruto le 17/12/2003 14:14:06

Après quelques tests sur mon problème, j'ai trouvé la solution pour Djean & cellofan. Pour contrer le problème Mid ( voir message ci-dessus ), j'ai mis mon &lt;input type="file" name="Fichier1" accept="image/jpeg"&gt; dans sa propre form
Ex :
&lt;TABLE BGCOLOR=#EEEEEE WIDTH=300 NOBORDER CELLPADDING=0 CELLSPACING=0&gt;
&lt;tr&gt;
  &lt;td&gt;
     &lt;IMG SRC='Img/i.p.folder.drafts.gif' WIDTH=15 HEIGHT=12align=left hspace=5&gt;&nbsp;&nbsp;&lt;B&gt;T&lt;/B&gt;itre de la source
  &lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;&lt;input type="text" name="Titre" value="" size="50"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;TR&gt;
  &lt;TD&gt; &lt;IMG SRC='Img/i.p.putinfolder.gif' WIDTH=15 HEIGHT=12 align=left hspace=5&gt;&nbsp;&nbsp;&lt;B&gt;A&lt;/B&gt;jouter un fichier&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TABLE&gt;
&lt;TABLE BGCOLOR=#EEEEEE WIDTH=300 NOBORDER CELLPADDING=0 CELLSPACING=0&gt;
   &lt;FORM name="Identification" method="post" action="gestsource.asp?Cat=2&Page=1&Etape=1" enctype="multipart/form-data"&gt;
   &lt;TR&gt;
      &lt;TD colspan="2"&gt;
          &lt;input type="file" id="UploadFichier" name="Fichier1" accept="image/jpeg" /&gt;
      &lt;/TD&gt;
   &lt;/TR&gt;
   &lt;tr&gt;
       &lt;td WIDTH=100&gt;&lt;/td&gt;
       &lt;TD align="right"&gt;&nbsp;&