salve a tutti
sto usando uno script preso da freeasp.html.it per fare l'upload di uno o più file alla volta, e l'ho unito a uno script per aggiungere record a un db.
Il problema che ho è che:
- dei 2 file che invio via form solo uno viene salvato sul server (il primo in ordine)
- gli altri campi che invio via form non vengono salvati su DB: non viene creato nessun nuovo record e la pagina asp che mi dà problemi, invece di chiudersi con un redirect, mi dà l'errore "impossibile visualizzare la pagina" (ma nessun errore ASP preciso...).
- la cartella dove viene fatto l'upload ha i permessi di scrittura.
Qualcuno sa dirmi cosa può essere? posto il codice della pagina che riceve i dati dal form...
***************
<%
'Questa variabile setta il percorso di dove effettuare l'upolad
'la cartella non puo non esistere lo script non la crea ! ! !
'percorso = Server.MapPath("/")
percorso = "../upload/"
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)
' Qui recupero il file ALLEGATO da uploadare (se presente) e lo scrivo sul server
if instr(Intestazione,"file1") > 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
if i<>0 then
Set FSO = CreateObject("Scripting.FileSystemObject")
Upload1 = True
DimensioneFile1 = len(ContenutoFile)
EstensioneFile1 = right(ContenutoFile,3)
NomeFile1 = NomeFile
Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile1), True, False)
Set textStream = FSO.CreateTextFile(server.mappath(NomeFile1), True, False)
textStream.Write ContenutoFile
textStream.Close
Set textStream = Nothing
Set FSO = Nothing
end if
end if
' Qui recupero il file IMMAGINE da uplodare (se presente) e lo scrivo sul server
if instr(Intestazione,"file2") > 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
if i<>0 then
Set FSO = CreateObject("Scripting.FileSystemObject")
Upload2 = True
DimensioneFile2 = len(ContenutoFile)
EstensioneFile2 = right(ContenutoFile,3)
NomeFile2 = NomeFile
Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile2), True, False)
textStream.Write ContenutoFile
textStream.Close
Set textStream = Nothing
Set FSO = Nothing
end if
end if
next
' Da qui in poi recupero gli altri dati e li scrivo
Dim Rs
Dim Conn
Set Conn=Server.createobject("ADODB.connection")
Set Rs=Server.createobject("ADODB.Recordset")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.mappath("../filcea.mdb")
rs.open "filcea", Conn,3,3
rs.AddNew
rs("titolo") = request.form("titolo")
rs("txt") = request.form("txt")
rs("formato") = request.form("formato")
rs("attach") = NomeFile1
rs("img") = NomeFile2
rs("imgv") = request.form("imgv")
rs("novita") = request.form("novita")
rs("stato") = request.form("stato")
rs.update
rs.close
Set rs = nothing
Conn.close
Set Conn = nothing
response.redirect("add_form.asp")
End if
%>

Rispondi quotando
