Ho un problema con l'upload delle immagini. Vorrei mettere un controllo nell'upload che rifiuti immagini superiori ad una certa dimensione (es. 150 KB), come posso fare?
Quale comando posso utilizzare per il controllo?
Ho un problema con l'upload delle immagini. Vorrei mettere un controllo nell'upload che rifiuti immagini superiori ad una certa dimensione (es. 150 KB), come posso fare?
Quale comando posso utilizzare per il controllo?
www.stefanoraone.com Webdesigner Freelance
www.santamariadileuca.it - Portale turistico informativo, Santa Maria di Leuca
Dipende dai metodi che il sistema di upload che utlizzi ti mette a disposizione.
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
Questo è lo script...
<%
' //// dichiarazione delle variabili obbligatoria
option explicit
' //// dichiaro le variabili
Dim folder
Dim nom_file
Dim byteCount
Dim RequestBin
Dim PosBeg
Dim i
Dim char
Dim PosEnd
Dim boundary
Dim boundaryPos
Dim Pos
Dim intCount
Dim Name
Dim PosFile
Dim PosBound
Dim Value
Dim FileName
Dim ContentType
Dim nome_file
Dim Conn
Dim filepathname
Dim ScriptObject
Dim MyFile
Dim Sql
Dim Rs
Dim iwidth, iheight, file
' //// Directory dove verrà caricato il file (la cartella deve avere i permessi in scrittura)
folder = "/public"
' ////// Inizio Componente Upload
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
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")
'Get an object name
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Conte nt-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("filen ame="))
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),Requ estBin,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
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
' //// Fine Componente Upload
' //// riempio le variabili con valori proveninti dalla form
nome_file = UploadRequest.Item("nome_file").Item("Value")
' //// controllo che la form sia state regolarmente popolata
If IsNull(nome_file) OR nome_file = "" Then
Response.Write ("<center>
CAMPI OBBLIGATORI!
RITORNA</center>")
Response.End
End if
' //// creo il file nella folder
if UploadRequest.Item("nome_file").Item("FileName")=" " then
Else
contentType = UploadRequest.Item("nome_file").Item("ContentType" )
filepathname = UploadRequest.Item("nome_file").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("nome_file").Item("Value")
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(folder) &"\"&filename)
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
End if
' //// carico la pagina di risposta e stampo a video il link al file caricato
Response.Write("<script language=""javascript"">window.alert(""Foto inviata con successo!"")</script>")
Response.Redirect("accouncementsadd.asp")
%>
www.stefanoraone.com Webdesigner Freelance
www.santamariadileuca.it - Portale turistico informativo, Santa Maria di Leuca
Prova a testare il valore della variabile byteCount
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
Grazie ho risolto.
www.stefanoraone.com Webdesigner Freelance
www.santamariadileuca.it - Portale turistico informativo, Santa Maria di Leuca