Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    45

    UpLoad, controllo campo e rinomina file

    Buonasera a tutti,
    mi aiutate ad adattare il codice sottostante alla pagina "inserimento2.asp"?
    Il codice per l'upload della pagina "inserimento2.asp", permette di uplodare un file mantenendone il nome originale.
    Quello che seve a me è:

    - se il campo allegato è vuoto, cuntinui ugualmente l'eseguzione dello scipt senza restituire errori;

    - rimnominare il file con un nome del tipo "allegato_numeroprograssivo.estensione", cioè che assegni un nuovo nome file senza sovrascrivere uno già presente nella cartella "allegati".

    Praticamente è il codice qui sotto ma non riesco ad adattarlo alla pagina "inserimento2.asp", causa le mie limitatissime conoscenze di .asp SORRY!
    Prima o poi, imparerò! :-)

    Attendo gentile risposta augurando a tutti una buona serata.


    ______________________________________




    ' --- Inizio cidice controllo campo & rinomina file ----

    if upl.Form("allegato").IsEmpty Then
    allegato="nessunallegato"
    Else
    Randomize
    NuovoNomeFile = Cstr(Int((1000000 - 20 + 1) * Rnd + 20))
    NomeFile = Mid(upl.Form("allegato").UserFilename, InstrRev(upl.Form("allegato").UserFilename, "\") + 1)
    allegato=NomeFile
    Estensione =Right(NomeFile, 4)
    allegato="allegato_"&NuovoNomeFile&Estensione
    upl.Form("allegato").SaveAs server.mappath("allegati/" & allegato)
    End if

    ' --- Fine cidice controllo campo & rinomina file ----





    ______________________________________





    Pagina: inserimento2.asp



    <%

    'variabili di configurazione

    Dim folder
    folder = "/public/amministrazione/login/articoli/allegati" ' ---- directory sul server con accesso in scrittura ---

    'fine variabili di configurazione


    '---- 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

    contentType = UploadRequest.Item("allegato").Item("ContentType")
    filepathname = UploadRequest.Item("allegato").Item("FileName")
    filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
    value = UploadRequest.Item("allegato").Item("Value")

    'Create FileSytemObject Component
    Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")

    'Create and Write to a File
    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

    '---- Fine Componente Upload ----


    gg=UploadRequest.Item("gg").Item("Value")
    mm=UploadRequest.Item("mm").Item("Value")
    aaaa=UploadRequest.Item("aaaa").Item("Value")
    categoria=UploadRequest.Item("categoria").Item("Va lue")
    titolo=UploadRequest.Item("titolo").Item("Value")
    articolo=UploadRequest.Item("articolo").Item("Valu e")

    '--- Controlla che il campo titolo sia Pieno
    If IsNull(titolo) OR titolo="" Then
    Response.Write ("<table width='600'><tr><td valign='middle'><center><font color='#FF0000' size='2' face='Verdana, Arial, Helvetica, sans-serif'>[img]/public/amministrazione/img/icona_attenzione.gif[/img]

    ERRORE !!

    Hai dimenticato di riempire il campo NOME UTILITIE.</font>

    <font color='#000000' size='2' face='Verdana, Arial, Helvetica, sans-serif'>Correggi l'errore</font></center></td></tr></table>")
    Response.End
    End if
    '--- Fine Controllo Campo titolo

    '--- Controlla che il campo articolo sia Pieno
    If IsNull(articolo) OR articolo="" Then
    Response.Write ("<table width='600'><tr><td valign='middle'><center><font color='#FF0000' size='2' face='Verdana, Arial, Helvetica, sans-serif'>[img]/public/amministrazione/img/icona_attenzione.gif[/img]

    ERRORE !!

    Hai dimenticato di riempire il campo DESCRIZIONE UTILITIE.</font>

    <font color='#000000' size='2' face='Verdana, Arial, Helvetica, sans-serif'>Correggi l'errore</font></center></td></tr></table>")
    Response.End
    End if
    '--- Fine Controllo Campo articolo

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

    SQL = "Select id, gg, mm, aaaa, categoria, titolo, articolo, allegato FROM utilities"

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

    rs.AddNew
    rs("gg") = gg
    rs("mm") = mm
    rs("aaaa") = aaaa
    rs("categoria") = categoria
    rs("titolo") = titolo
    rs("articolo") = articolo
    rs("allegato") = filename
    rs.update

    rs.Close
    set rs = Nothing

    Response.Redirect("/public/amministrazione/login/articoli/articoli.asp")
    %>
    *Tempista*

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Qui crei e scrivi il file filename:
    codice:
    'Create and Write to a File 
    Set MyFile = ScriptObject.CreateTextFile(Server.mappath(folder)&"\"&filename)
    Se modifichi la variabile con un'altra il nome del file sarà diverso...
    Per il numero progressivo è più complesso perché divresti sapere a quale numero sei arrivato...

    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.