1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| '---------------------------------------------------------------------------------------
Response.Buffer=true
'initialisation des variables --------------------------------------------------------------------------
Dim Contenu, TailleContenu, ContenuAscii, X, Y, Z, Position
Contenu = Request.BinaryRead(Request.TotalBytes) 'lecture binaire de la photo
TailleContenu = Request.TotalBytes ' taille du fichier en binaire
If TailleContenu <> 0 Then
ToutOk = 0
posdebtitre=0
posdebinfo=0
posfintitre=0
posfininfo=0
PosDebutFic=0
PosFinFic=0
PosDebutCont=0
PosFinCont=0
PosDebutFic2=0
PosFinFic2=0
X = 0
Y = 1
Position = 1
'recherche du nom du fichier --------------------------------------------------------------------
LimitASCII = "filename=" & chr(34)
LimitBin=""
for Z = 1 to Len(LimitASCII)
LimitBin = LimitBin & chrB(ASC(Mid(LimitASCII, Z, 1)))
next
PosDebutFic = InstrB(1, Contenu, LimitBin)
if PosDebutFic <> 0 then
PosDebutFic = PosDebutFic + LenB(LimitBin)
end if
'recherche du contenu du fichier, travail en binaire --------------------------------------
LimitASCII = "Content-Type:"
LimitBin=""
For Z = 1 to Len(LimitASCII)
LimitBin = LimitBin & chrB(ASC(Mid(LimitASCII, Z, 1)))
next
PosDebutCont = InstrB(1, Contenu, LimitBin)
if PosDebutCont <> 0 then
PosFinFic = PosDebutCont - 3
PosDebutCont = PosDebutCont + LenB(LimitBin)
end if
NomFichier = MidB(Contenu, PosDebutFic , (PosFinFic - PosDebutFic))
ContenuAscii = ""
for Z = 1 to LenB(NomFichier)
ContenuAscii = ContenuAscii & chr(ASCB(MidB(NomFichier, Z, 1)))
next
NomFichier = ContenuAscii
PosFinCont = InstrB(PosDebutCont, Contenu, chrB(13))
if PosFinCont <> 0 then
PosDebutFic2 = PosFinCont + 4
end if
LimitASCII = "----"
LimitBin=""
for Z = 1 to Len(LimitASCII)
LimitBin = LimitBin & chrB(ASC(Mid(LimitASCII, Z, 1)))
next
PosFinFic2 = InstrB(PosDebutFic2, Contenu, LimitBin)
if PosFinFic2 <> 0 then
ToutOk = 1
end if
'détermination de l'extension
A = Instrrev(NomFichier, ".")
extension = lcase(mid(NomFichier, A +1))
if extension <> "jpg" AND extension <> "jpeg" AND extension <> "gif" then
ToutOk = 0
Response.write extension
Response.write("<font color='#000000' size='2' face='Arial, Helvetica, sans-serif'>L'extension du fichier doit être de type JPEG (.jpg ou .jpeg) ou GIF.</font>")
end if
DataFichier = MidB(Contenu, PosDebutFic2 , (PosFinFic2 - PosDebutFic2)) 'renvoi le nb d'octect du contenu du fichier
'si taille photo trop grande
If Clng(100000)<LenB(DataFichier) Then
Response.write("<font color='#000000' size='2' face='Arial, Helvetica, sans-serif'>La photo est trop volumineuse, redimensionnez la ou choisisez une autre photo.</font>")
action=""
Else
If ToutOk = 1 then
'utilise une session car serveur non pas tjrs la meme arborescence pour ouvrir le dossier upload (cf global.asa)
'NouveauFic = fichier 'recup le path du dossier fichier
NouveauFic=Request.ServerVariables("APPL_PHYSICAL_PATH") & "\test\"&NomFichier
response.write "nouveaufic : " & nouveaufic
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set Out=FileObject.CreateTextFile(NouveauFic, True) 'ouverture du fichier qui l'écrase meme si existe (true)
For I = 1 to LenB(DataFichier)
Out.Write chr(AscB(MidB(DataFichier,I,1))) 'ecriture de l'image en binaire ds le fichier
Next
Out.close 'ferme fichier
Set Out=nothing
end if
End If
end if |
Partager