386 messaggi dal 25 maggio 2001
salve, ho il seguente form per l'inserimento di foto in un db access:
 
<form name="f" method= "post" action= "update_foto.asp" enctype="multipart/form-data"> 
    <table align="center" border="0" width="600" id="table11"> 
    <input type= "hidden" name= "ID" value="<%=QSID%>"> 
    <tr> 
      <td bgcolor="#0A64C8" style="font-size: 10px; font-family: Verdana; font-weight: bold; color: #FFFFFF">ID:</td> 
      <td><%=QSID%></td> 
    </tr> 
    <tr> 
      <td bgcolor="#0A64C8" style="font-size: 10px; font-family: Verdana; font-weight: bold; color: #FFFFFF">Carica foto 1:</td> 
      <td valign="top"><input type="file" size=40 name= "UPlFotop"></td> 
    </tr> 
        <tr> 
      <td bgcolor="#0A64C8" style="font-size: 10px; font-family: Verdana; font-weight: bold; color: #FFFFFF">Carica foto 2:</td> 
      <td valign="top"><input type="file" size=40 name= "UPlFotop"></td> 
    </tr> 
        <tr> 
      <td bgcolor="#0A64C8" style="font-size: 10px; font-family: Verdana; font-weight: bold; color: #FFFFFF">Carica foto 3:</td> 
      <td valign="top"><input type="file" size=40 name= "UPlFotop" ></td> 
    </tr> 
        <tr> 
      <td bgcolor="#0A64C8" style="font-size: 10px; font-family: Verdana; font-weight: bold; color: #FFFFFF">Carica foto 4:</td> 
      <td valign="top"><input type="file" size=40 name= "UPlFotop"></td> 
    </tr> 
    <tr> 
      <td bgcolor="#0A64C8" style="font-size: 10px; font-family: Verdana; font-weight: bold; color: #FFFFFF">Carica foto 5:</td> 
      <td valign="top"><input type="file" size=40 name= "UPlFotop"></td> 
    </tr> 
      <tr bgcolor="#FFCC33" >     
      <td style="font-size: 10px; font-family: Verdana; font-weight: bold; color: #000000">Categoria:</td> 
      <td> 
      <select name= "Categorie"> 
        <Option value= "categoria">nome categoria</option> 
      </select> 
      </td> 
    </tr> 
    <tr> 
      <td colspan="2" align="center"><input type= "submit" name= "Go" value= "Invia">&nbsp;&nbsp;</td> 
    </tr> 
  </table>     
</form> 


e questa è la pagina update_foto.asp per l'inserimento delle foto nella cartella public e per l'inserimento del record nel db access:
 
dim w_ID, w_Prodotto, w_PFoto, w_GFoto  
dim w_Categorie 
dim percorso, ByteRicevuti, FileBinario, DatiRicevuti, FirmaFile, ArrPezzi, item, Inizio 
dim Intestazione, ContenutoFile, NomeUpload, NomeFile, Upload1, DimensioneFile1, EstensioneFile1, textStream, i, j 
dim FSO, NomeFile1, Upload2, DimensioneFile2, EstensioneFile2, NomeFile2, maxdimp, maxdimg 
 
'Questa variabile setta il percorso di dove effettuare l'upolad 
'la cartella non puo non esistere lo script non la crea ! ! ! 
percorso = "/public/" 
maxdimp=40000000000000    ' dimensione massima immagine piccola 
maxdimg=380000000000000   ' dimensione massima immagine grande 
 
ByteRicevuti = Request.TotalBytes 
 
if ByteRicevuti > 0 then 
  DatiRicevuti = Request.BinaryRead(ByteRicevuti) 
  FileBinario = RSBinaryToString(DatiRicevuti)   
  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,"ID") > 0 then 
      w_ID = ContenutoFile 
    end if 
    if instr(Intestazione,"Prodotto") > 0 then 
      w_Prodotto = ContenutoFile 
    end if 
    if instr(Intestazione,"PFoto") > 0 then 
      w_PFoto = ContenutoFile 
    end if 
    if instr(Intestazione,"Categorie") > 0 then 
      w_Categorie = ContenutoFile 
    end if   
 
 
    ' Qui recupero il file da uploadare (se presente) e lo scrivo 
    ' sul server 
    if instr(Intestazione,"UPlFotop") > 0 then 
      i = instr(Intestazione,"filename=") 
      j = instr(i + 10,Intestazione,chr(34)) 
      NomeUpload = mid(Intestazione,i + 10,j-i-10) 
      i = instrRev(NomeUpload,"\") 
      NomeFile=""       ' max       
      if i<>0 then 
          NomeFile = mid(NomeUpload,i + 1) 
      else 
          NomeFile = NomeUpload 
      end if 
'     if i<>0 then       
      if NomeFile<>"" then 
        Set FSO = CreateObject("Scripting.FileSystemObject") 
        Upload1 = True 
        DimensioneFile1 = len(ContenutoFile) 
        if len(w_PFoto)=0 then 
           NomeFile1 = NomeFile 
           w_PFoto = NomeFile            
         else 
            NomeFile1 = w_PFoto   
         end if          
        if DimensioneFile1 > maxdimp then 
           Errore = Errore & "Dimensione immagine piccola ("&DimensioneFile1*0.0001 & " kb)  maggiore del limite consentito ("&maxdimp*0.0001 & " kb)<br>" 
        else 
            EstensioneFile1 = LCase(right(NomeFile,4))         
            if EstensioneFile1 <>".jpg" and EstensioneFile1 <>".gif" then 
               Errore = Errore & "Tipo di file non corretto : "&EstensioneFile1&"<br>" 
            else            
                Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile1), True, False) 
                textStream.Write ContenutoFile 
                textStream.Close 
                Set textStream = Nothing 
            end if 
        end if   
         Set FSO = Nothing 
      end if 
    end if 
 
    if instr(Intestazione,"UPlFotog") > 0 then 
      i = instr(Intestazione,"filename=") 
      j = instr(i + 10,Intestazione,chr(34)) 
      NomeUpload = mid(Intestazione,i + 10,j-i-10) 
      i = instrRev(NomeUpload,"\") 
      NomeFile=""       ' max       
      if i<>0 then 
         NomeFile = mid(NomeUpload,i + 1) 
      else 
          NomeFile = NomeUpload 
      end if 
'     if i<>0 then       
      if NomeFile<>"" then   
        Set FSO = CreateObject("Scripting.FileSystemObject") 
        Upload2 = True 
        DimensioneFile2 = len(ContenutoFile) 
        if len(w_GFoto)=0 then 
           NomeFile2 = NomeFile 
           w_GFoto = NomeFile            
         else 
            NomeFile2 = w_GFoto   
         end if          
        if DimensioneFile2 > maxdimg then 
           Errore = Errore & "Dimensione immagine grande ("&DimensioneFile2*0.001 & " kb)  maggiore del limite consentito ("&maxdimg*0.001 & " kb)<br>" 
        else 
            EstensioneFile2 = LCase(right(NomeFile,4))         
            if EstensioneFile2 <>".jpg" and EstensioneFile2 <>".gif" then 
               Errore = Errore & "Tipo di file non corretto : "&EstensioneFile2&"<br>" 
            else            
                Set textStream = FSO.CreateTextFile(server.mappath(percorso & NomeFile2), True, False) 
                textStream.Write ContenutoFile 
                textStream.Close 
                Set textStream = Nothing 
            end if 
        end if     
         Set FSO = Nothing 
      end if 
    end if 
 
  next 
End if   
 
 
  Dim QSID, Errore, Tipologia, SQL, RS, Prodotto, PFoto, SCategoria, Categoria, Categorie 
  QSID = w_ID 
   
  Prodotto = Replace(w_Prodotto, "'", "''") 
     
  if w_PFoto<>"" then  
     PFoto = "public/"&Replace(w_PFoto, "'", "''")     
  else 
     Gfoto=""           
  end if      
 
 
  Categorie = w_Categorie 
  SCategoria = Mid(Categorie,1,InStr(Categorie, "-")-1) 
  Categoria = Mid(Categorie,InStr(Categorie, "-")+1) 
   
   
  If Errore = "" Then 
    If QSID <> "" Then 
      SQL = "UPDATE spettacoli Set SCategoria = " & SCategoria & ", Prodotto = '" & Prodotto & "', PFoto = '" & PFoto & "'WHERE ID = " &  QSID 
    Else 
      SQL = "INSERT INTO spettacoli (SCategoria, Prodotto, PFoto) VALUES (" & SCategoria & ", '" & Prodotto & "', '" & PFoto & "')" 
    End If   
       
    Set RS = Conn.Execute(SQL) 
    Set RS = Nothing 
    Conn.close 
    Set Conn = Nothing 
 
     If Errore = "" And Err = 0 Then 
       Response.Redirect "spettacoli.asp" 
     Else 
       Errore = "Errore: <br>" & Err.Description 
      'response.write("<br>sql:"&sql) 
       Response.Redirect "errore.asp?errore=" & Errore 
     End If 
   Else 
     Response.Redirect "errore.asp?errore=" & Errore 
   End If 


la pagina update_foto.asp è impostata per l'inserimento di un record, di una foto! Per inserire più record con il form in alto, come posso modificare il codice in update_foto.asp?

spero di essere stato chiaro!
Grazie
non è necessario che li inserisci contemporaneamente, ti basta semplicemente la sequenzialità :)

Prova scrivendo una funzione che si occupa SOLO della creazione del record nel db, poi esegui il salvataggio delle immagini una per una (magari in un ciclo). Al termine di ogni upload chiami la funzione che hai creato passandogli i parametri che ti servono ed il gioco è fatto :)

Davide Guida
Technical Architect @ Razorfish Healthware
http://davideguida.altervista.org
386 messaggi dal 25 maggio 2001
ciao grazie per la risposta!
il codice che ho postato prima io lo utilizzo già per inserire un record alla volta! vorrei modificarlo per poter aggiungere più record senza stravolgere tutto!!!

Grazie
547 messaggi dal 24 maggio 2002
Contributi
Il fatto è che la tua pagina, fa tutto in un colpo solo in modo piuttosto procedurale.

Il suggerimento (mi aggancio a quanto detto da mizrael) è di "smontare" il codice in più funzioni che fanno una cosa sola (salvare l'immagine, scrivere nel db, etc.)

A questo punto nella pagina il codice vero da inserire è quello che cicla sugli input type=file e per ognuno chiamare le funzioni che ti servono.

Marco.

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.