Ragazzi, vi posto un bel quesito, io ci ho perso la testa gia' da qualche giorno.
Allora: ho una pagina .asp che uso per fare (o meglio per far fare) l'upload delle foto su un sito web.
Lo script per l'upload e' questo:

codice:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Upload con ASP by ASPCode.it - http://www.aspcode.it						 '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'variabili di configurazione
Dim folder
folder = "\catalogo"				'directory sul server con accesso in scrittura
'fine variabili di configurazione

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("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

byteCount = Request.TotalBytes

RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")

BuildUploadRequest  RequestBin

contentType = UploadRequest.Item("blob").Item("ContentType")
filepathname = UploadRequest.Item("blob").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("blob").Item("Value")

'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

'Create and Write to a File
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
%>

<html>
<head>
	<title>UPLOAD FILE</title>
</head>
<body>




<table border=0 width=360 bgcolor=#FFFFFF cellspacing=1 align=center>
	<tr>
		<td width=400 align=center bgcolor=#40576f><FONT FACE="tahoma" color=#ffffff size=2>Il file <%=filename%> è stato inviato con successo.</FONT></td>
	</tr>
<tr><td></td></tr>
  <tr>
    <td width="400" height="30" bgcolor="#FFFFFF" align=center><font face=arial size=2 color=black>&lt; &lt; UPLOAD DI UN ALTRO FILE</font></td>
  </tr>
</table>


</body>
</html>

Se non ricordo male non ci ho affatto messo le mani sul codice.
Il bello e' che a volte funziona senza problemi, altre volte mi ritorna questo errore:

Errore di run-time di Microsoft VBScript error '800a0046'
Autorizzazione negata
/upload.asp, line 84

la linea 84 dovrebbe essere questa:
Set MyFile = ScriptObject.CreateTextFile(Server.mappath(folder) &"\"&filename)

Non ho sinceramente saputo ricondurre una circostanza comune agli errori. La cartella di destinazione ha gia' dei file, che tramite l'upload vanno sovrascritti o ne vanno aggiunti di nuovi. Riesco ad uploadarne diversi, poi capita un file che genera l'errore. L'errore e' legato cmq al file, nel senso che se io mando su il file 1.jpg e ottengo l'errore, poi mando su il 2,jpg e il 3,jpg senza problemi, poi se rimando su il 1.jpg mi ritorna l'errore.

Avete qualche idea? Devo sentire il provider (hostingsolutions)?

Grazie in anticipo