1 messaggio dal 28 luglio 2021
Ciao a tutti,
chiedo scusa in anticipo se per caso questa richiesta già è stata affrontata in altri post, ho fatto una ricerca ma non ho trovato nulla che mi serviva nello specifico.

Seconda premessa, sono una pippa in ASP e non faccio lo sviluppatore per mestiere.

Veniamo a noi, ho un piccolo DataBase, per una mia collezione è dovrei cambiare / modificare la pagina di upload di 1 immagine con la possibilità di arrivare a 4.

Pagina Seleziona Immagini:

<form enctype="multipart/form-data" method=post onSubmit="return validate(form);" action="inserisci_nuovo_session_reg.asp" name="form">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle"><div id="image-preview">
<label for="image-upload" id="image-label">Seleziona l'Immagine</label>
<input type="file" name="foto1" id="image-upload" />
</div></td>
<td align="center" valign="middle"><div id="image-preview1">
<label1 for="image-upload1" id="image-label">Seleziona l'Immagine</label1>
<input type="file" name="foto2" id="image-upload1" />
</div></td>

</tr>
<tr>
<td align="center" valign="middle"><div id="image-preview2">
<label2 for="image-upload2" id="image-label">Seleziona l'Immagine</label2>
<input type="file" name="foto3" id="image-upload2" />
</div></td>
<td align="center" valign="middle"><div id="image-preview3">
<label3 for="image-upload3" id="image-label">Seleziona l'Immagine</label3>
<input type="file" name="foto4" id="image-upload3" />
</div></td>

</tr>

Ovviamente nel DB MYSQL ho i campi Foto1, 2, 3 e 4.

File di upload e scrittura:

<%@LANGUAGE="VBSCRIPT"%>
<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Type Library" -->
<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" -->
<!--#include file="conn.asp" -->

<%

Dim folder
Dim data_inserimento
Dim categoria
Dim serie
Dim nome
Dim cognome
Dim pronome
Dim protettore_protettrice
Dim patrone_di
......

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



' //// Directory dove carico il file (la cartella ha i permessi in scrittura)
folder = "/public/immagini"


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

' //// Fine Componente Upload

' //// riempio le variabili con valori proveninti dalla form
'progressivo = UploadRequest.Item("progressivo").Item("Value")
'data_inserimento = UploadRequest.Item("data_inserimento").Item("Value")
categoria = UploadRequest.Item("categoria").Item("Value")
serie = UploadRequest.Item("serie").Item("Value")
nome = UploadRequest.Item("nome").Item("Value")
cognome = UploadRequest.Item("cognome").Item("Value")
pronome = UploadRequest.Item("pronome").Item("Value")
protettore_protettrice = UploadRequest.Item("protettore_protettrice").Item("Value")
patrone_di = UploadRequest.Item("patrone_di").Item("Value")
........



' //// controllo che la form sia state regolarmente popolata
'If IsNull(categoria) OR categoria = "" OR IsNull(serie) OR serie = "" Then
'Response.Write ("<center><br><b>CAMPI OBBLIGATORI!</b><br><br><a href='javascript:history.back()'><b>RITORNA</b></a></center>")
'Response.End
'End if



'etas=Datediff("yyyy",data_inserimento)



Set conn = Server.CreateObject("ADODB.Connection")

conn.Open "Driver={MySQL ODBC 3.51 Driver};SERVER=;Database=Sql1_1;port=;UID=Sql;PWD=;"

' //// creo il file nella folder
if UploadRequest.Item("foto1").Item("FileName")="" then

Else

contentType = UploadRequest.Item("foto1").Item("ContentType")
filepathname = UploadRequest.Item("foto1").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("foto1").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

' //// seleziono la tabella dove scrivero l'ora, il titolo ed il nome del file
Sql = "Select * FROM santini"

Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open SQL, Conn, 1, 2

' //// aggiugo un nuovo record alla tabella
Rs.AddNew
Rs("data_inserimento") = data_inserimento
Rs("categoria") = categoria
Rs("serie") = serie
Rs("nome") = nome
Rs("cognome") = cognome
Rs("pronome") = pronome
Rs("protettore_protettrice") = protettore_protettrice
Rs("patrone_di") = patrone_di
Rs("reliqua") = reliqua
.......
Rs("foto1") = filename
Rs("foto2") = filename
Rs("foto3") = filename
Rs("foto4") = filename
Rs("note") = note


categoria=replace(categoria,"'","''")
serie=replace(serie,"'","''")
nome=replace(nome,"'","''")
cognome=replace(cognome,"'","''")
pronome=replace(pronome,"'","''")
protettore_protettrice=replace(protettore_protettrice,"'","''")
patrone_di=replace(patrone_di,"'","''")
reliqua=replace(reliqua,"'","''")
......
foto1=replace(foto1,"'","''")
foto2=replace(foto2,"'","''")
foto3=replace(foto3,"'","''")
foto4=replace(foto4,"'","''")
note=replace(note,"'","''")


'Rs("data_inserimento") = date()
Rs.UpDate

' //// chiudo il record set e libero le risorse
Rs.Close
Set Rs = Nothing


' //// chiudo la connessione e libero le risorse
Conn.Close
Set Conn = Nothing

' //// carico la pagina di risposta e stampo a video il link al file caricato
Response.Redirect("registrazione_effettuata.asp#ok")
%>


Se carico 1 immagine va bene, se ne carico di pù nei campi del DB mi inserisce l'ultima che ho selezionato.

Vi chiedo se potreste essere cosi gentili e pazienti nel darmi qualche dritta su come modificarlo al fine di poter caricare tutte e 4 foto.

Grazie mille!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.