4 messaggi dal 16 maggio 2006
www.digea.it
ciao a tutti.

volevo chiedere se qualcuno sa come rinominare il file dopo averlo trasferito sul server e come applicare un controllo sulle estensioni per permettere che i file caricati siano sempre jpg...lo script che permette l'upload è il seguente.....


<%Sub BuildUploadRequest(RequestBin)
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
If PosFile<>0 AND (PosFile<PosBound) Then
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
UploadControl.Add "Value" , Value
UploadRequest.Add name, UploadControl
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop
End Sub
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function%>
2.410 messaggi dal 13 febbraio 2003
Contributi
fso non dispone del metodo rename ma puoi usare movefile per rinominare il file.

Per il controllo del tipo di file sconsiglio di usare unicamente l'estensione in quanto non ci vuole molte a rinominare un file e passare ad esempio un exe come jpg.

Consiglio di fare un controllo sull'header binario del file nel caso di file JPG è così composto:

2 byte (lunghezza)
5 byte (identificativo) 4A 46 49 46 00 (JFIF)
2 byte (versione)

Per maggiori info
http://www.w3.org/Graphics/JPEG/jfif3.pdf
4 messaggi dal 16 maggio 2006
www.digea.it
ciao grazie per la risposta, nel frattempo ho trovato questa funzione....
potrebbe fare al caso mio secondo te????


function GetFileExtension(fileName)
if InStr(fileName, ".") > 0 then
GetFileExtension = "." & Right(fileName, Len(fileName) - InStrRev(fileName, "."))
else
GetFileExtension = ".tmp"
end if
end function
strEstensione = GetFileExtension(fileName)
If strEstensione <> ".jpg" AND strEstensione <> ".gif" AND strEstensione <> ".png" Then
Response.Redirect(UploadRequest.Item("redirect").Item("Value"))
End If
2.410 messaggi dal 13 febbraio 2003
Contributi
si va bene come soluzione, ma controllando unicamente l'estensione non sei sicuro sul tipo di file.

Ad esempio posso mandarti un file pdf rinominato con l'estensione .jpg

L'unico modo per controllare il tipo di file è analizzare il file dopo l'upload
4 messaggi dal 16 maggio 2006
www.digea.it
capisco e in termini di codice hai qualcosa da farmi vedere per dare un'occhiata e cercare di integrarlo a tuttto il resto???

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.