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

    cambiare nome del file caricato

    Salve a tutti!
    ho un pagina index.asp e upload.asp dove nella pagina index carico il documento e visualizzo tutti i file nell'archivio access, mentre nella pagina upload effettuo la scrittura nell'archivio.
    premesso questo, vado al mio problema:
    devo poter aggiungere al nome del file caricato una serie di numeri, lettere, essendo che devo caricare sempre lo stesso file, quindi devo evitare l'autocancellazione.
    come potete vedere nella pagina upload.asp, carico i file nella cartella public dove ho permesso di scrittura,caricando un file con lo stesso nome di quello che già c'era prima lui lo sovrascrive e quindi mi rimane sempre l'ultimo inserito e mi toglie quelli precedenti.
    sicuramente mi sono espresso male se volete chiarimenti chiedete pure.
    grazie!!!

    ------Pagina Index.asp----------
    <html>
    <head>
    <title>Index.asp</title>
    <style type="text/css">
    td, p, input, textarea { font-size: 12px; font-family: Monofont; }
    a { color: #000080; text-decoration: None; }
    a:hover { color: #800000; text-decoration: Underline; }
    </style>
    </head>

    <body>
    <form enctype="multipart/form-data" method="post" action="upload_ordine.asp" name="form">
    <div align="center">

    <table width="45%" cellpadding="3" cellspacing="3" border="1" bordercolor="#C0C0C0" height="71">
    <tr>
    <td align="center" width="33%" height="43"><font size="3">ALLEGATO:</font></td>
    <td align="center" width="67%" height="43">
    <input type="file" name="nome_file" maxlength="255" size="40" />
    </td>
    </tr>
    <tr>
    <td align="center" colspan="2" height="47">
    <input type="submit" value="Carica File" name="submit" />
    </td>
    </tr>
    </table>
    </div>
    </form>
    <%
    ' //// connessione al DB
    Set Conn=Server.CreateObject("ADODB.Connection")
    Conn.Open "PROVIDER=MSDASQL;" & _
    "DRIVER={Microsoft Access Driver (*.mdb)}; " & _
    "DBQ=" & server.mappath("/mdb-database/ordini.mdb")

    ' //// seleziono la tabella per stampare a video i link ai file caricati e ordino i risultati ID decrescente


    Sql = "Select * from elenco order by ID Desc ;"
    Set Rs = Conn.Execute(Sql)

    ' //// se la tabella è vuota stampo a video un messaggio e chiudo il records set
    If Rs.Eof OR Rs.Bof Then

    Response.Write("<center><font color='#003366'>Non ci sono file nel database.</font></center>")

    Rs.Close
    Set Rs = Nothing

    ' //// se la tabella non è vuota
    Else
    %>
    <%
    '///inizio tabella fissa
    Function Splitter(sText, iChars, sSplitter)
    Dim I, J, Y, iFrags, iStart, iLen
    Dim sResult, sTrimmed
    Dim arrWords, arrTrim

    arrTrim = Split(sText, Chr(32))
    sTrimmed = ""
    For Y = LBound(arrTrim) To UBound(arrTrim)
    If arrTrim(Y) <> "" Then sTrimmed = sTrimmed & arrTrim(Y) & Chr(32)
    Next
    sTrimmed = Trim(sTrimmed)

    If Len(sTrimmed) > 0 And Len(sTrimmed) > iChars Then
    arrWords = Split(sTrimmed, Chr(32))
    sResult = ""
    For I = 0 To UBound(arrWords)
    iLen = Len(arrWords(I))
    If Len(arrWords(I)) > iChars Then
    iFrags = Int(iLen / iChars)
    For J = 0 To iFrags
    iStart = (iChars * J) + 1
    If Len(Mid(arrWords(I), iStart, iChars)) > 0 Then
    sResult = sResult & sSplitter & Mid(arrWords(I), iStart, iChars)
    End If
    Next
    sResult = Mid(sResult, Len(sSplitter) + 1)
    Else
    sResult = sResult & Chr(32) & arrWords(I)
    End If
    Next
    Splitter = sResult
    Else
    Splitter = sTrimmed
    End If
    End Function


    '///fine tabella fissa
    %>
    <div align="center">
    <table width="352" border="1" bordercolor="#C0C0C0">
    <tr bgcolor="#C0C0C0">
    <td width="136"><font size="3">Data</font></td>
    <td width="196">


    <font size="3">Nome Documento</font></p>
    </td>
    </tr>
    <%
    ' //// effettuo un ciclo sulla tabella per stampare a video tutti i records
    While Not Rs.Eof
    data =Rs.Fields("data")
    documento =Rs.Fields("nome_file")

    %>
    <tr>
    <td width="136"><%=Splitter(data, 10, chr(32))%></td>
    <td width="196">"><%=Splitter(documento, 20, chr(32))%></td>
    </tr>
    <%
    ' //// vado avanti con il ciclo
    Rs.MoveNext
    Wend

    ' //// chiudo il records set e libero risorse
    Rs.Close
    Set Rs = Nothing
    %>
    </table>
    </div>
    <% End If %>
    </body>

    </html>
    <%
    ' //// chiudo la connessione e libero risorse
    Conn.Close()
    Set Conn = Nothing
    %>

    ------Pagina Upload.asp----------
    <%
    ' //// dichiarazione delle variabili obbligatoria
    option explicit

    ' //// dichiaro le variabili
    Dim folder
    Dim titolo_file
    Dim nom_file
    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 verrà caricato il file (la cartella deve avere i permessi in scrittura)
    folder = "/public"

    ' ////// Inizio Componente Upload

    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("Conte nt-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("filen ame="))
    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),Requ estBin,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
    ' ///titolo_file = UploadRequest.Item("titolo_file").Item("Value")
    nome_file = UploadRequest.Item("nome_file").Item("Value")

    ' //// controllo che la form sia state regolarmente popolata
    If IsNull(nome_file) OR nome_file = "" Then
    Response.Write ("<center>
    Compilare tutti i campi!

    Indietro</center>")
    Response.End
    End if

    ' //// connessione al DB
    Set Conn=Server.CreateObject("ADODB.Connection")
    Conn.Open "PROVIDER=MSDASQL;" & _
    "DRIVER={Microsoft Access Driver (*.mdb)}; " & _
    "DBQ=" & server.mappath("/mdb-database/ordini.mdb")

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

    Else

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

    Set Rs = Server.CreateObject("ADODB.Recordset")
    Rs.Open SQL, Conn, 1, 2
    ' //// aggiugo un nuovo record alla tabella
    Rs.AddNew
    Rs("data") = date()
    Rs("nome_file") = filename
    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("index.asp")
    %>

  2. #2
    usa Upload di BAOL74 (cercalo su google)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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 © 2026 vBulletin Solutions, Inc. All rights reserved.