Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    6

    download file su server e registrazione su database

    Salve, gestisco un sito di un ente dove vengono pubblicati dei concorsi. La memorizzazione avviene su database access. Dovrei però effettuare l'upload di file che dovranno poi essere scaricati dagli utenti. Di seguito riporto i campi del database:

    Data
    Ente
    Titolo
    Titoletto
    Contenuto
    allegato1
    allegato2
    allegato3

    nei campi allegato1, allegato2 e allegato3 vorrei memorizzare l'indirizzo o almeno il nome del file di cui ho effettuato l'upload sul server.

    In sintesi avrei bisogno del codice per:
    1) fare l'upload di almeno 3 allegati;
    2) memorizzare l'indirizzo sul dove sono stati salvati i file o eventualmente il solo nome del file (senza doverlo inserire manualmente);
    3) realizzare una pagina per gli utenti dove oltre a leggere il testo possano scaricare gli allegati.

    La difficoltà che incontro sta nel fare l'upload tramite form e memorizzare il link del file memorizzato nel database. Potete darmi qualche suggerimento, non sono molto pratica di programmazione è da poco che mi cimento.
    grazie infinite in anticipo
    kuma

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuta, premesso che per una profana eseguire tale procedura non è facilissima hai le seguenti possibilità:
    1) Ti leggi qui cosa potrebbe fare al caso tuo (uno dei + usati e quello di baol)
    2) Su molti hosting ci sono script preinstallati più facili d'usare
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    6
    Salve ho fatto vari tentativi e qualcosa sono riuscita a fare le due cose separatamente.
    Ho provato in due modi a combinarli insieme ma mi da errore. Riporto di seguito lo script e i relativi errori se qualcuno è così gentile da dargli un'occhiata e dirmi come posso risolvere.

    OPZIO NE 1: ERRORE “campi non compilati”

    Script pagina aggiungi concorso:
    <form enctype="multipart/form-data" method="POST" action="concorsi_DB.asp?tipo=aggiungi">
    <table border="1" cellpadding="0" cellspacing="0" width="100%">
    <tr>
    <td width="19%"><font face="Georgia" size="2">Ente</font></td>
    <td width="81%"><font face="Georgia" size="2"><input type="text" name="ente" size="70"></font></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Titolo concorso</font></td>
    <td width="81%"><font face="Georgia" size="2"><input type="text" name="titolo" size="70"></font></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Sottotitolo concorso</font></td>
    <td width="81%"><font face="Georgia" size="2"><input type="text" name="titoletto" size="70"></font></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Contenuto concorso</font></td>
    <td width="81%"><textarea rows="7" name="contenuto" cols="53"></textarea></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Tratto da</font></td>
    <td width="81%"><font face="Georgia" size="2"><input type="text" name="collegamento" size="70"></font></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Allegato1</font></td>
    <td>
    <font face="Georgia" size="2">
    Allegato1<input type="file" name="allegato"> </td>
    </tr>
    <tr>
    </tr>
    </table>
    <table width=100%>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td width="100%" colspan="2"><font face="Georgia" size="2"><input type="submit" value="Inserisci" name="B1">
    <input type="reset" value="Reimposta" name="B2"></font></td>
    </tr>
    </table>
    </form>

    Script pagina concorsi_DB.asp:
    <% ' PERCORSO DEL DATABASE
    url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("../../mdb-database/concorsi.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open url_DB
    ' CONTROLLA SE TUTTI I CAMPI SONO STATI COMPILATI
    IF Len(Request("ente")) = 0 or Len(Request("titolo")) = 0 or Len(Request("titoletto")) = 0 or Len(Request("contenuto")) = 0 then
    ' CAMPI NON COMPILATI!
    %>
    <hr>
    <div align="center"><font face="Georgia" size="4">Campi non compilati!</font></p>
    <hr>
    <%
    Else
    ' CAMPI COMPILATI RICEVE L'OPERAZIONE DA SVOLGERE (AGGIUNGERE/MODIFICARE concorsi)
    operazione = Request.QueryString("tipo")
    Set RecSet = Server.CreateObject("ADODB.Recordset")

    ' IN BASE ALL'OPERAZIONE CREA LA QUERY AL DATABASE
    IF operazione = "aggiungi" then
    ' DEVE AGGIUNGERE il concorso
    SQL = "SELECT * FROM concorsi"
    else
    ' DEVE MODIFICARE IL CONCORSO
    SQL = "SELECT * FROM concorsi WHERE id = " & Request.Querystring("id") &""
    End IF
    RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

    ' OPERAZIONE : AGGIUNGI concorsi
    IF operazione = "aggiungi" then
    RecSet.Addnew

    ' SE SI AGGIUNGE IL concorso, INSERISCE LA DATA CORRENTE
    RecSet("data") = date()
    End IF

    RecSet("ente") = Server.HTMLEncode(Request.Form("ente"))
    RecSet("titolo") = Server.HTMLEncode(Request.Form("titolo"))
    RecSet("titoletto") = Server.HTMLEncode(Request.Form("titoletto"))
    RecSet("contenuto") = Replace(Server.HTMLEncode(Request.Form("contenuto" )),VbCrLf, "
    ")
    RecSet("collegamento") = Server.HTMLEncode(Request.Form("collegamento"))
    RecSet("allegato1") = Server.HTMLEncode(Request.Form("allegato"))
    RecSet("allegato2") = Server.HTMLEncode(Request.Form("allegato2"))
    RecSet("allegato3") = Server.HTMLEncode(Request.Form("allegato3"))

    'inizio caricamento file
    Set Upload = Server.CreateObject("Persits.Upload")
    Upload.Save(Server.MapPath("../../public/Allegati")) 'percorso dove finirà il file
    Set File = Upload.Files("allegato") ' input della vostra form dove caricate il file
    If Not File Is Nothing Then
    filename=File.FileName
    end if
    'fine caricamento file

    ' AGGIORNA E CHIUDE IL DB
    RecSet.Update
    RecSet.Close
    Set RecSet = Nothing
    %>
    <hr>
    <div align="center"><font face="Georgia" size="4">Operazione eseguita correttamente!</font></div>
    <hr>
    <%
    End IF
    Conn.Close
    Set Conn = Nothing
    %>

    OPZIO NE 2:
    ERRORE
    “Persist.Upload1 error “800°003d”
    Wrong Content-Type. Make sure you have included the attribute ENCTYPE =”multipart/form-data” in your form.
    /Pagine/Area_Riservata/concorsi_DB.asp, line 246”
    Script pagina aggiungi concorso:

    <form method="POST" action="concorsi_DB.asp?tipo=aggiungi">
    <table border="1" cellpadding="0" cellspacing="0" width="100%">
    <tr>
    <td width="19%"><font face="Georgia" size="2">Ente</font></td>
    <td width="81%"><font face="Georgia" size="2"><input type="text" name="ente" size="70"></font></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Titolo concorso</font></td>
    <td width="81%"><font face="Georgia" size="2"><input type="text" name="titolo" size="70"></font></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Sottotitolo concorso</font></td>
    <td width="81%"><font face="Georgia" size="2"><input type="text" name="titoletto" size="70"></font></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Contenuto concorso</font></td>
    <td width="81%"><textarea rows="7" name="contenuto" cols="53"></textarea></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Tratto da</font></td>
    <td width="81%"><font face="Georgia" size="2"><input type="text" name="collegamento" size="70"></font></td>
    </tr>
    <tr>
    <td width="19%"><font face="Georgia" size="2">Allegato1</font></td>
    <td>
    <font face="Georgia" size="2">
    Allegato1<input type="file" name="allegato"> </td>
    </tr>
    <tr>
    </tr>
    </table>
    <table width=100%>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td width="100%" colspan="2"><font face="Georgia" size="2"><input type="submit" value="Inserisci" name="B1">
    <input type="reset" value="Reimposta" name="B2"></font></td>
    </tr>
    </table>
    </form>

    Script pagina concorsi_DB.asp:
    <% ' PERCORSO DEL DATABASE
    url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("../../mdb-database/concorsi.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open url_DB
    ' CONTROLLA SE TUTTI I CAMPI SONO STATI COMPILATI
    IF Len(Request("ente")) = 0 or Len(Request("titolo")) = 0 or Len(Request("titoletto")) = 0 or Len(Request("contenuto")) = 0 then
    ' CAMPI NON COMPILATI!
    %>
    <hr>
    <div align="center"><font face="Georgia" size="4">Campi non compilati!</font></p>
    <hr>
    <%
    Else
    ' CAMPI COMPILATI RICEVE L'OPERAZIONE DA SVOLGERE (AGGIUNGERE/MODIFICARE concorsi)
    operazione = Request.QueryString("tipo")
    Set RecSet = Server.CreateObject("ADODB.Recordset")

    ' IN BASE ALL'OPERAZIONE CREA LA QUERY AL DATABASE
    IF operazione = "aggiungi" then
    ' DEVE AGGIUNGERE il concorso
    SQL = "SELECT * FROM concorsi"
    else
    ' DEVE MODIFICARE IL CONCORSO
    SQL = "SELECT * FROM concorsi WHERE id = " & Request.Querystring("id") &""
    End IF
    RecSet.Open SQL, Conn, adOpenStatic, adLockOptimistic

    ' OPERAZIONE : AGGIUNGI concorsi
    IF operazione = "aggiungi" then
    RecSet.Addnew

    ' SE SI AGGIUNGE IL concorso, INSERISCE LA DATA CORRENTE
    RecSet("data") = date()
    End IF

    RecSet("ente") = Server.HTMLEncode(Request.Form("ente"))
    RecSet("titolo") = Server.HTMLEncode(Request.Form("titolo"))
    RecSet("titoletto") = Server.HTMLEncode(Request.Form("titoletto"))
    RecSet("contenuto") = Replace(Server.HTMLEncode(Request.Form("contenuto" )),VbCrLf, "
    ")
    RecSet("collegamento") = Server.HTMLEncode(Request.Form("collegamento"))
    RecSet("allegato1") = Server.HTMLEncode(Request.Form("allegato"))
    RecSet("allegato2") = Server.HTMLEncode(Request.Form("allegato2"))
    RecSet("allegato3") = Server.HTMLEncode(Request.Form("allegato3"))

    'inizio caricamento file
    Set Upload = Server.CreateObject("Persits.Upload")
    Upload.Save(Server.MapPath("../../public/Allegati")) 'percorso dove finirà il file
    Set File = Upload.Files("allegato") ' input della vostra form dove caricate il file
    If Not File Is Nothing Then
    filename=File.FileName
    end if
    'fine caricamento file

    ' AGGIORNA E CHIUDE IL DB
    RecSet.Update
    RecSet.Close
    Set RecSet = Nothing
    %>
    <hr>
    <div align="center"><font face="Georgia" size="4">Operazione eseguita correttamente!</font></div>
    <hr>
    <%
    End IF
    Conn.Close
    Set Conn = Nothing
    %>

    Praticamente la differenza tra i due script è la stringa "enctype="multipart/form-data""
    kuma

  4. #4
    sorry ,second answer i can't understand too long!!
    try your best !
    http://www.newstar2010.com/
    hot selling brand shoes and clothes
    newstarsandy@hotmail.com

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Qui hai letto?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    6
    Grazie infinite dell'aiuto sono riuscita a realizzare ciò che volevo.
    Ora però avrei un'altro problemino, e a quanto ho potuto leggere in giro, non sono l'unica. Non riesco a passare un valore da una pagina ad un altra tramite form. Attenzione non parlo di dati inseriti dall'utente tramite text o altro. Per spiegarmi meglio riporto la parte di codice.

    Ho due pagine: aggiungi_concorso.asp e concorsi_DB.asp.
    Nella prima pagina invio i dati:
    <form method="POST" ENCTYPE="multipart/form-data" action="concorsi_DB.asp?azione=aggiungi">
    Data Inserimento
    <input type="text" name="DAT" size="70">
    ......

    Nella seconda li elaboro:

    operazione = Request.QueryString("azione")

    ' IN BASE ALL'OPERAZIONE
    IF operazione = "aggiungi" then
    ' IN BASE al valore di operazione esegue alcune righe di codice
    else
    ' esegue altro codice
    End IF

    Il problema è che non mi viene memorizzato il valore di "azione" passato tramite la form oppure qusto vine passato ma non non riesco a leggerlo con la Request.QueryString. Ho provato sostituendo quest'ultima con Request.Form ma niente...
    Non capisco cosa sbaglio.
    Il tutto funziona se nella form tolgo ENCTYPE="multipart/form-data" ma questo mi serve in quanto devo effettuare l'upload. Qualcuno sa darmi una mano?
    kuma

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prova a passare la variabile "azione" come campo hidden del form e poi, visto che usi un upload, lo recupererai così:
    codice:
    operazione = trim(Upload.Form("azione"))
    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.