Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    31

    Upload su directory diverse.

    Salve a tutti. Sto utilizzando un form (preso da www.aspcode.it)che funziona benissimo. il mio problema è questo: ho modificato il form aggiungendo una select in modo che selezionato un file il relativo upload avvenga in una directory particolare selezionata dalla select ( es. xxx.jpg venga salvato all'interno della directory "image" selezionata dalla combobox del form , mentre xxx.doc nella directory documenti.. ecc...)
    Di seguito ho incollato il file upload.asp.
    Attualmente salva tutti i file nella folder archivio.
    Spero di essere stato chiaro(conosco poco asp).

    grazie.


    <%
    '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''
    'Upload con ASP by ASPCode.it - http://www.aspcode.it '
    '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''
    'variabili di configurazione
    Dim folder

    folder = "\archivio" 'directory sul server con accesso in scrittura
    'fine variabili di configurazione

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

    <html>

    <head>
    <title>UPLOAD FILE</title>
    <meta http-equiv="refresh" content="3; url=uploadform.asp">
    </head>
    <body>


    <table border=0 width=360 bgcolor=#40576f cellspacing=1 align=center>
    <tr>
    <td width=400 align=center bgcolor=#40576f><FONT FACE="tahoma" color=#ffffff size=2>Il file <%=filename%> è stato uploadato con successo.</FONT></td>
    </tr>
    </table>



    ***** Attendere - tra qualche secondo sarai reindirizzato alla pagina Precedente ****
    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di buji
    Registrato dal
    Nov 2002
    Messaggi
    178
    Devi modificare la variabile folder a seconda della scelta nella tua combo.
    Buji

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    31
    Come faccio. saresti così gentile da scrivere il codice.
    grazie 1000.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    31
    Qualcuno mi da una mano. grazie1000.

  5. #5
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Come si chiama la select?

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    31
    Ti incollo il form.

    html>
    <head>
    <title>UPLOAD FILE</title>
    </head>
    <body>


    <table border=0 width=360 bgcolor=#40576f cellspacing=1 align=center>
    <tr>
    <td width=400 align=center bgcolor=#40576f><FONT FACE="tahoma" color=#ffffff size=2>SELEZIONARE IL FILE PER L'UPLOAD</FONT></td>
    </tr>
    <tr>
    <td width="400" height="0" bgcolor="#E6E6FF">
    <form method="POST" enctype="multipart/form-data" action="upload.asp">
    <p align="center"><font color="#000080" size="2" face="Arial">

    File: </font>
    <input type="file" name="blob" size=30>
    <p align="center">
    Archivio : <select name="select" size="1">
    <option>ECONOMICO</option>
    <option>FISCALE</option>
    <option>STAMPA</option>
    <option>VARIE</option>
    </select>
    <p align="center">

    <input type="submit" name="Enter" value="Aggiungi">
    </form>
    </td>
    </tr>
    <tr>
    <td width="400" height="10" bgcolor="#40576f" align=right>www.aspcode.it</font></td>
    </tr>
    </table>


    </body>
    </html>

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    31
    Scusa la mia ignoranza, ma cosa c'è che non va nella select?.
    Economico, fiscale ec... sono le directory scelte dall'utente per salvare il file.

  9. #9
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    Si, scusa.

    Come non detto.

    Ok.

    Scaricati il mio upload.
    Butta quel delirio di codice per fare l'upload.

    e metti questo in save.asp (cambia il riferimento del form)
    codice:
    <%
    Dim oUpload
    Set oUpload = new cUpload
    oUpload.AutoRename = False
    oUpload.OverWrite = True
    oUpload.Load()
    oUpload.SetPath oUpload.Form("Select")
    While Not oUpload.EOF
    oUpload.Save()
    Response.Write "Salvo il file : " & oUpload.GetFileName() & "
    "
    oUpload.MoveNext
    Wend
    Set oUpload=Nothing
    %>
    Con il mio upload puoi caricare diversi files contemporaneamente, applicare filtri sul tutti le proprietà dei files. La directory verrà creata automaticamente.
    Come vedi puoi impostare alcuni parametri (autorename, overwrite, setPath)
    La ciofeca che stai usando si incarta con file superioriori a 150-200k

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    31
    mi da il seguente errore:

    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A01FA)
    Classe non definita: 'cUpload'
    /archivio/stampa/save.asp, line 5

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.