Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Modifica: Upload singolo file - Upload multiplo.

    Innanzitutto Buon Giorno a tutti!!! Sono in cerca di aiuto ed ogni soluzione è ben accetta!!!
    Sono Arcangelo da Reggio Calabria.
    Premettendo che è da circa un anno che mi son dato all'ASP, mi hanno chiesto di effettuare alcune modifiche su un sito già fatto (aggiungerei da una persona incompetente).
    Premetto che la mia richiesta di poterlo rifare da capo a mio modo, non è stata accolta, di conseguenza DEVO risolvere il problema.
    Fra le tante cose che questo sito gestisce, vi è una vetrina di Auto usate.
    Il suo funzionamento è il seguente:
    File: downloadadmin.asp nel quale vi sono tutti gli input (informazioni testuali e foto)
    DB in Access
    File: upload.asp che si occupa della connessione al DB, la conversione da string a byte, ecc... (ma credo che questo sia irrilevante per il problema)
    File: cat_auto.asp che è il file che mostra a video le informazioni uploadate.
    Il problema da risolvere è che l'ADMIN (perchè è solo dal lato ADMIN) debba poter uploadare 3 foto.
    Lo script utilizzato dalla persona che ha creato il sito, è stato copiato e schiaffato lì, ma dava la possibilità di uploadare una sola foto e basta.
    Ho agito in questo modo:

    - Nel file downloadadmin, ho aggiunto altri 2 Input type:
    <tr>
    <td>Seleziona immagine:</td>
    <td><input type="file" name="txtFile" style="font-family: Verdana; font-size: 8pt" /></td>
    </tr>

    - Nel DB ho aggiunto i campi per contenere le altre due foto:

    percorso (public/files/)
    dimimage (che già c'erano)

    percorsodue (public/files/due/)
    dimimagedue

    percorsotre (public/files/tre/)
    diimagetre

    - Nel file cat_auto:
    Ho modificato l'anteprima dell'immagine di with:"150"
    con 3 piccole da with:"50" (così non si sfora nemmeno come dimensioni)

    Alla fine funziona tutto correttamente, ma resta un PICCOLO PROBLEMA!!!

    Quando su cat_auto compaiono le informazioni, i campi testuali sono corretti, le immagini appaiono tutte e tre, ma SONO UGUALI!!!

    Analizzando credo che il problema sia questo ciclo:

    For Each File In Uploader.Files.Items
    File.SaveToDisk Server.MapPath("public/files")
    File.SaveToDisk Server.MapPath("public/files/due")
    File.SaveToDisk Server.MapPath("public/files/tre")
    numSize = File.FileSize
    numSizedue = File.FileSize
    numSizetre = File.FileSize
    strURL = "/public/files/" & File.FileName
    strURLdue = "/public/files/due/" & File.FileName
    strURLtre = "/public/files/tre/" & File.FileName
    strSQL = "INSERT INTO tbl_downloads (nome, modello, annoimm, mar_id, cilindrata, descrizione, percorso, percorsodue, percorsotre, dimensioni, dimensionidue, dimensionitre, data, colore, carburante, chilometri, cambio)VALUES('" & strAuto & "','" & strModello & "','" & strAnno & "','" & strMarca & "','" & strCilindrata & "','" & strDescription & "','" & strURL & "','" & strURLdue & "','" & strURLtre & "','" & numSize & "','" & numSizedue & "','" & numSizetre & "','" & strData & "','" & strColore & "','" & strCarburante & "','" & strChilometri & "','" & strCambio & "')"
    adoCon.Execute(strSQL)
    Next

    Che cosa fa, praticamente, prende in input le 3 immagini, ne crea tre copie per ognuno, ma quando va a ripescarle per metterle su cat_auto.asp, non prende una per ogni immagine diversa. Prende le ultime 3 copie dell'ultima immagine che ho uploadato.
    Ho la riga con le informazioni e come immagini ho:
    macchina1.jpg presa da percorso
    macchina1.jpg presa da percorsodue
    macchina1.jpg presa da percorsotre

    Il ciclo originale (quello per singolo file) è questo:

    For Each File In Uploader.Files.Items
    File.SaveToDisk Server.MapPath("public/files")
    numSize = File.FileSize
    strURL = "/public/files/" & File.FileName
    strSQL = "INSERT INTO tbl_downloads (nome, modello, annoimm, mar_id, cilindrata, descrizione, percorso, dimensioni, data, colore, carburante, chilometri, cambio)VALUES('" & strAuto & "','" & strModello & "','" & strAnno & "','" & strMarca & "','" & strCilindrata & "','" & strDescription & "','" & strURL & "','" & numSize & "','" & strData & "','" & strColore & "','" & strCarburante & "','" & strChilometri & "','" & strCambio & "')"
    adoCon.Execute(strSQL)
    Next

    Vi prego aiutatemi!!!
    Ho agito bene? ho speranze :-) ???
    Attendo un vostro piccolo AIUTO!!!
    GRAZIE!!!

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    For Each File In Uploader.Files.Items

    legge un file alla volta da sé pertanto è inutile utilizzare variabili come numSize, numSizedue, numSizetre
    il numSize sarà sempre uno ad ogni ciclo.
    E la query di INSERT deve essere fatta alla fine altrimenti così la fai tante volte quante sono le immagini che carichi (verifica nel db).


    Roby

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.