Salve a tutti,
ho una pagina la quale contiene un form che compilandolo permette di modificare una news scritta in precendenza (usando lo stesso form), il form mi manda come azione ad una pagina che fa l'upload della foto e il conseguente aggiornamento del database.
Lo script esegue un controllo sull'estensione del file (accetta files d'immagine), ma purtroppo lo script funziona solo se la foto non c'è o se viene settato valore foto=null nel campo relativo alla foto del db.

Questo è lo script:

codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>controlloNews</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body >

      <%	  
' Se il server supera il limite ti rimando alla pagina di erroreUpload
Server.ScriptTimeout = 120

if session("login") then

'Questa variabile setta il percorso di dove effettuare l upolad
'la cartella non puo non esistere lo script non la crea ! ! !

percorso = "/news/foto/"

'script per settare la data della foto
gg=datePart("d", now())
mm=datePart("m",now())
aaaa = datePart("yyyy", now())
data = gg &"/"& mm & "/" & aaaa

hh=datePart("h",now())
min=datePart("n",now())
sec=datePart("s",now())

' da in futuro il nome alla foto in modo tale dei avere un nome univoco per ogni foto
mascheraNome = gg &"_"& mm & "_" & aaaa &"__"& hh &"_"& min &"_"& sec

id = Request.QueryString("id")

'script per la lettura binaria dei cambi

ByteRicevuti = Request.TotalBytes

if ByteRicevuti > 0 then
	DatiRicevuti = Request.BinaryRead(ByteRicevuti)
	For i = 1 To lenB(DatiRicevuti)
		FileBinario = FileBinario & chr(ascB(midB(DatiRicevuti,i,1)))
	Next
	FirmaFile = left(FileBinario,instr(FileBinario,"" & vbCrLf)-1)
	ArrPezzi = split(FileBinario,FirmaFile)

	for item = 1 to ubound(ArrPezzi)-1
		Inizio = instr(ArrPezzi(item),"" & vbCrLf & "" & vbCrLf)
		Intestazione = left(ArrPezzi(item),Inizio-1)
		Inizio = Inizio + len("" & vbCrLf) + len("" & vbCrLf)
	    	ContenutoFile = mid(ArrPezzi(item),Inizio,len(ArrPezzi(item))-Inizio-1)

		' Recupero i campi se sono compilati
		
		if instr(Intestazione,"titolo") > 0 then
			titolo = ContenutoFile
		end if	
		if instr(Intestazione,"testoNews") > 0 then
		testoNews = ContenutoFile
		end if	
		if instr(Intestazione,"foto") > 0 then
			foto = ContenutoFile
		end if	
			
		' Qui recupero il file da uploadare (se presente) foto1 
		if instr(Intestazione,"foto") > 0 then
		    i = instr(Intestazione,"filename=")
			j = instr(i + 10,Intestazione,chr(34))
			NomeUpload = mid(Intestazione,i + 10,j-i-10)
			i = instrRev(NomeUpload,"\")
			if i<>0 then
    		    NomeFile = mid(NomeUpload,i + 1)
    		else
    			NomeFile = NomeUpload
    		end if
      				
			'Qui ricavo l estensione del file (se presente) per stabilire quale file passa e quale no, 
			' nel mio caso gif e jpeg se non è di questo tipo mi da la pag di errore
			
			if NomeFile > "" then
				dim arrParti
				arrParti=split(NomeFile,".")
				dim strEstensione
				strEstensione=arrParti(UBOUND(arrParti))
				
			Select Case strEstensione
				Case "gif","jpeg","jpg"
			' Scrivo il file sul server
				if i<>0 then
					Set FSO = CreateObject("Scripting.FileSystemObject")
					Upload1 = True
					DimensioneFile1 = len(ContenutoFile)
					'qui va inserito uno script che controlla il il peso dell immagine
					EstensioneFile1 = right(ContenutoFile,3)
					NomeFile = mascheraNome &"."& strEstensione
    				Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile), True, False)
    				textStream.Write ContenutoFile
    				textStream.Close
    				Set textStream = Nothing
	   				Set FSO = Nothing
				  end if
			Case else
				' Se il file nn è tipo immagine vai alla pagina di errore
				Response.Redirect("erroreUpload.htm")
			end Select
	end if
	end if	
		next
end if		

'aggiornamento dati nella tabella
set conn = server.CreateObject("ADODB.Connection")
conn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & server.MapPath("/mdb-database/news.mdb"))

dim rec
rec = "Update news set titolo='"&titolo&"', testo='"&testoNews&"', foto='"&NomeFile&"' where id="&id
	
'controllo l esito del messaggio 
on Error Resume next
conn.execute rec
if err = 0 then
rec.close
set rec = nothing
Response.Redirect("esitoPositivo.htm")
risultato = "ok"
else
risultato = "ko"
response.Redirect("errore.htm")
end if
else response.Redirect("login.asp")
end if
%>
</body>
</html>
La cosa più strana è che se io ometto la seguente riga, (relativa al response.redirect) lo script funziona, ma mi accetta tutti i tipi di files.
codice:
Case else
		' Se il file nn è tipo immagine vai alla pagina di errore
		'Response.Redirect("erroreUpload.htm")
                         ' ho messo l apice di commento 
	end Select
ho controllato questo script per filo e per segno ma non riesco a trovare l'errore, la cosa piu strana che usando lo stesso script per effettuare un inserzione mi funziona.

vi ringrazio in anticipo.