ciao ho caricato un sito su server Aruba e nell'area amministrazione ho un problema di immagini. il sito, compresa l'area amminitrazione l'ho messo tutto nella vartella public che dovrebbe avere tutti i permessi . Ma quando cerco di importare un'immagine ho questo errore:

Microsoft VBScript runtime error '800a0046'

Permission denied

/public/_admin/catimgupload1.asp, line 135

lo script di catimgupload1.asp è:


<%@Language="VBScript"%>
<% Option Explicit %>
<% Response.Buffer = TRUE %>
<% if session("shopadmin")<>"ok" then response.redirect ("sorry.html") %>
<% if session("adminlevel")<2 then response.redirect ("denied.asp") %>

<%
Dim uploadFolder, maxFileSize, allowedFileTypes
Dim MyFileTypes
Dim errorHappened, errorMsg
Dim intI, FileName, FileSize
uploadFolder = "/images/cat/"
maxFileSize = 102400 ' max bytes
allowedFileTypes = ".gif;.jpg;.png;.psd"
MyFileTypes = Split(allowedFileTypes,";")
%>
<%
Class FileUploader
Public Files
Private mcolFormElem

Private Sub Class_Initialize()
Set Files = Server.CreateObject("Scripting.Dictionary")
Set mcolFormElem = Server.CreateObject("Scripting.Dictionary")
End Sub

Private Sub Class_Terminate()
If IsObject(Files) Then
Files.RemoveAll()
Set Files = Nothing
End If
If IsObject(mcolFormElem) Then
mcolFormElem.RemoveAll()
Set mcolFormElem = Nothing
End If
End Sub

Public Property Get Form(sIndex)
Form = ""
If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex))
End Property

Public Default Sub Upload()
Dim biData, sInputName
Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos
Dim nPosFile, nPosBound

biData = Request.BinaryRead(Request.TotalBytes)
nPosBegin = 1
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

If (nPosEnd-nPosBegin) <= 0 Then Exit Sub

vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin)
nDataBoundPos = InstrB(1, biData, vDataBounds)

Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--"))

nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition"))
nPos = InstrB(nPos, biData, CByteString("name="))
nPosBegin = nPos + 6
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename="))
nPosBound = InstrB(nPosEnd, biData, vDataBounds)

If nPosFile <> 0 And nPosFile < nPosBound Then
Dim oUploadFile, sFileName
Set oUploadFile = New UploadedFile

nPosBegin = nPosFile + 10
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34)))
sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\"))

nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:"))
nPosBegin = nPos + 14
nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13)))

oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))

nPosBegin = nPosEnd+4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin)

If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile
Else
nPos = InstrB(nPos, biData, CByteString(Chr(13)))
nPosBegin = nPos + 4
nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2
If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin))
End If

nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds)
Loop
End Sub

'String to byte string conversion
Private Function CByteString(sString)
Dim nIndex
For nIndex = 1 to Len(sString)
CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1)))
Next
End Function

'Byte string to string conversion
Private Function CWideString(bsString)
Dim nIndex
CWideString =""
For nIndex = 1 to LenB(bsString)
CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1)))
Next
End Function
End Class

Class UploadedFile
Public ContentType
Public FileName
Public FileData

Public Property Get FileSize()
FileSize = LenB(FileData)
End Property

Public Sub SaveToDisk(sPath)
Dim oFS, oFile
Dim nIndex

If sPath = "" Or FileName = "" Then Exit Sub
If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"

Set oFS = Server.CreateObject("Scripting.FileSystemObject")
If Not oFS.FolderExists(sPath) Then Exit Sub

Set oFile = oFS.CreateTextFile(sPath & FileName, True)

For nIndex = 1 to LenB(FileData)
oFile.Write Chr(AscB(MidB(FileData,nIndex,1)))
Next

oFile.Close
End Sub
End Class

Function CheckFileTyp(FileName)
CheckFileTyp = false

For intI = 0 to Ubound(MyFileTypes)
If instr(FileName,MyFileTypes(intI)) > 0 Then
CheckFileTyp = true
End If
Next
End Function

Function CheckSize(FileSize)
CheckSize = false

If FileSize < maxFileSize Then
CheckSize = true
End If
End Function
%>
<%
Dim Uploader, File
Set Uploader = New FileUploader

Uploader.Upload()

If Uploader.Files.Count = 0 Then
errorHappened = 1
Else
For Each File In Uploader.Files.Items
If CheckFileTyp(File.FileName) = false Then
errorHappened = 2
Else
FileName = File.FileName
End If

If CheckSize(File.FileSize) = false Then
errorHappened = 3
FileSize = File.FileSize
End If

If errorHappened = "" Then
File.SaveToDisk Server.MapPath(uploadFolder)
End If
Next
End If

Select Case errorHappened
Case 1
errorMsg = errorMsg & "No file selected!"
Case 2
errorMsg = errorMsg & "Wrong filetype. Allowed are: " & allowedFileTypes & "!"
Case 3
errorMsg = errorMsg & "[b]File is too big. Maximum: " & maxFileSize & "
Your file: " & FileSize
End Select

If errorHappened = "" Then
response.redirect("catimgupload.asp")
Else
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title> .:. Administration</title>
<link rel="stylesheet" href="../includes/styles.css" type="text/css">
</head>

<body>
<div align="center"><center>
<table width="100%" cellpadding="2" cellspacing="0" bgcolor="#8DA0B8" border="0">
<tr><td align="center"><font face="arial" size="+1" color="#eaeaea"><%=fShopTitle%> .:. Admin - Upload</font></td></tr>
</table>

<table width="99%" border="0" cellpadding="2" cellspacing="0">
<tr valign="top"><td align="center" valign="top">


<center><%=errorMsg%>

[ back ]</center>



</td></tr></table></center></div>
</body>
</html><% End If %>