Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Problema con CopyFile e variabile nel path

    Ciao!
    Sto perdendo un sacco di tempo su una cosa che molto probabilmente è risolvibile in maniera banale...

    Devo copiare dei file da una cartella ad un'altra nel server.
    Se scrivo il nome del percorso completo (a manina) me lo prende, se invece, inserisco nel codice una variabile, non funziona più, nel senso che per lui il path finisce subito dopo "gallery" e mi incolla i file nella cartella gallery e non nella sottocartella.

    Immagino che sia solo un problema di sintassi...
    codice:
    objFSO.CopyFile "E:\Sites\miosito.com\htdocs\public\temp\unzip\*.jpg", "E:\Sites\miosito.com\htdocs\images\gallery" &"\" & galleria &""
    Se invece non fosse possibile realizzare la cosa così semplicemente, spiego qual è il mio scopo.

    Sto creando una galleria fotografica.
    L'utente può creare le diverse gallerie (i cui nomi sono memorizzati nella tabella "gallerie").
    Quando vuole caricare delle immagini può scegliere, fra le "gallerie" che ha creato, quella più adatta per le foto che vuole mettere online.

    L'utente carica le immagini in una cartella temporanea, poi i file vengono spostati nella cartella relativa alla categoria che ha scelto. Ed ecco perché ho bisogno di far sì che il nome della cartella nella quale incollare i file non sia scritta nel codice, ma sia possibile farla variare in base alle scelte fatte dall'utente.

    Qualche suggerimento utile?

    Grazie!

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    objFSO.CopyFile "E:\Sites\miosito.com\htdocs\public\temp\unzip\*.jpg", "E:\Sites\miosito.com\htdocs\images\gallery\" & galleria &""
    Assicurati che galleria sia il nome di una cartella...

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Ci sono arrivato... grazie del suggerimento!

    Per rispondere al tuo messaggio (dicendoti che mi sembrava tutto a posto!!!) ho ricontrollato con dei response.write e mi sono accorto che "galleria" era sbagliato.
    Avrei dovuto mettere RS("galleria"), infatti, response.write RS("galleria"), mi restituisce il nome della cartella.
    response.write di scelta mi resituisce l'id della galleria selezionata dall'utente nella pagina di scelta della galleria.

    Questa è la pagina che carica e sposta i file e che scrive i dati nel db.
    codice:
    <%
    scelta = Request.QueryString("galleria")
    
    
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.ActiveConnection = Conn
    RS.Open "SELECT galleria FROM gallerie WHERE id="& scelta &""
    ' il response.write RS("galleria") mi scrive il nome della cartella scelta dall'utente!!!
    'mentre "galleria" (che mi ostinavo a scrivere) non mi restituisce niente. 
    
    %>
    <%
    Dim objFSO
    
    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    
    objFSO.CopyFile "E:\Sites\miosito.com\htdocs\public\temp\unzip\*.jpg", "E:\Sites\miosito.com\htdocs\images\gallery\" & RS("galleria") &""
    ' alla fine il codice era corretto dal punto di visto della sintassi... 
    
    objFSO.DeleteFile "E:\Sites\miosito.com\htdocs\public\temp\unzip\*.jpg"
    
    Set objFSO = Nothing
    
    strPath = "/images/gallery/"& RS("galleria") &""
    ' anche qui sopra avevo scritto "galleria", al posto di RS("galleria")
    ' non avrebbe scritto niente nel db, visto che nella cartella gallery non ci sono file. 
    Set fileCreate = CreateObject("Scripting.FileSystemObject")
    Set fileGet = fileCreate.GetFolder(Server.MapPath(strPath))
    Set files = fileGet.Files
    
    
    For Each file in files
    Sql = "SELECT nome FROM gallery WHERE nome = '" & file.name & "'"
    Set RS = Conn.Execute(Sql)
      If RS.EOF Then
      SqlString = "INSERT INTO gallery (nome, id_galleria) VALUES ('" & file.name & "', '" & scelta &"')"
    
       Conn.Execute sqlString
    	Response.Write("<font color=green>")
    	Response.Write(file.name)
    	Response.Write(" è stato aggiunto al database. </color>
    ")
      Else
        Response.Write("<font color=red>")
    	Response.Write(file.name)
    	Response.Write(" è già presente nel database.</color>
    ")
      End If
    RS.close
    Set RS = nothing
    Next
    
    
    Set fileCreate=Nothing 
    Set fileGet=Nothing 
    Set files=Nothing 
    
    %>
    Ciao!

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.