Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Spostare file

  1. #1

    Spostare file

    Ho la necessità di spostare un file il cui percorso viene preso da un database, vi posto l’esempio:

    Origine = http://www.Sito.it/dir1/dir2/dir3/di...E/nomefile.xxx (percorso preso da db compreso nomefile)
    Destinazione = http://www.Sito.it/dir1/dir2/dir3/dirDestinazione/ (scelta a seconda del caso)
    NewF = NuovoNomeFile.xxx (scelto a seconda del caso)

    Dim FileObject
    Set FileObject=CreateObject("Scripting.FileSystemObjec t")
    FileObject.MoveFile "(Server.MapPath(Origine))", "(Server.MapPath(Destinazione & NewF)) "
    Set FileObject=Nothing


    Impossibile visualizzare la pagina
    Si è verificato un problema a livello della pagina che si desidera visualizzare che ne impedisce la visualizzazione.
    Errore di run-time di Microsoft VBScript (0x800A0035)
    Impossibile trovare il file



    Ho provato a togliere ""
    FileObject.MoveFile (Server.MapPath(Origine)), (Server.MapPath(Destinazione & NewF))

    Impossibile visualizzare la pagina
    Si è verificato un problema a livello della pagina che si desidera visualizzare che ne impedisce la visualizzazione
    Server.MapPath(), ASP 0173 (0x80004005)
    Il parametro Path del metodo MapPath contiene un carattere non valido.



    È possibile utilizzare un percorso contenente il nome del file in Server.MapPath (credo sia questo a provocare l’errore :master: ), o l’errore è dovuto ad altro.
    Come potrei risolvere?
    Grazie in anticipo.


  2. #2
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Stampati i percorsi e vedrai subito l'errore:


    codice:
    Response.Write Server.MapPath(Origine) & "
    " & Server.MapPath(Destinazione & NewF) 
    Response.End

  3. #3
    Grazie per la tua risposta Mizushi, ho gia fatto diverse prove di stampa del percorso, se provo a stampare

    Response.Write Server.MapPath(Origine)

    Mi restituisce:
    Impossibile visualizzare la pagina
    Si è verificato un problema a livello della pagina che si desidera visualizzare che ne impedisce la visualizzazione
    Server.MapPath(), ASP 0173 (0x80004005)
    Il parametro Path del metodo MapPath contiene un carattere non valido


    Stampando la var Origine in locale, ottengo

    Response.Write "" & Origine --> http://localhost/dir1/dir2/dir3/dir4/file_1.xxx

    Il percorso è corretto, il file.xxx effettivamente si trova li, per modo di dire, poichè provando ad inserire:

    FileObject.MoveFile "C:\dir\dir1\dir2\dir3\dir4\file.xxx", "C:\dir\dir1\dir2\dir3\dirDest\new.xxx "

    il file me lo sposta.

    Non riesco a capire


  4. #4
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Il metodo Server.MapPath non supporta evidentemente percorsi del tipo h t t p : //

    Per utilizzare il Server.MapPath devi specificare il percorso fisico del file... non puoi specificare esplicitamente un percorso virtuale, cioè questo script funziona correttamente:

    codice:
    	Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
    
    	sSourceFile = "C:\Inetpub\wwwroot\jpg\Img.JPG"
    	sDestinationFile = "C:\Inetpub\wwwroot\Img.JPG"
    
    	oFSO.MoveFile sSourceFile, sDestinationFile
    
    	Set oFSO = Nothing
    il tuo script non funziona, perchè tu scrivi così e l'errore è evidente:

    codice:
    Origine = http://www.Sito.it/dir1/dir2/dir3/d...NE/nomefile.xxx 
    Destinazione = http://www.Sito.it/dir1/dir2/dir3/dirDestinazione/ 
    
    response.write Server.MapPath(Origine)
    Come parametro per il metodo MapPath è necessario specificare un percorso fisico ( c:\inetpub\wwwroot\mio_sito.it\imagebanner.gif ).

    Il parametro che tu prevedi nel tuo script corrisponde a un percorso virtuale ( http://www.mio_sito.it/image/banner.gif ) .



  5. #5
    Questo è il percorso virtuale http://www.Sito.it/dir1/dir2/dir3/D...xx/nomefile.xxx

    la prima parte “http://www.Sito.it/dir1/dir2/dir3/” è sempre la stessa la DirUtentexxx e il nomefile.xxx sono le variabili.


    Credo però di aver risolto, non so se sia il metodo corretto ma funziona.
    Ho fatto così:

    Dim PercorsoFISICO
    PercorsoFISICO = "C:\Inetpub\wwwroot\" & Replace(right(sSourceFile, len(sSourceFile) - len(left(sSourceFile, 17))), "/", "\")

    ottenendo

    PercorsoFISICO = "C:\Inetpub\wwwroot\" & "\dir1\dir2\dir3\D...xx\nomefile.xxx"

    17 è il numero di caratteri di http://localhost/, logicamente lo dovrò sostituire con il numero di caratteri del sito (http://nomesito/) quando è in remoto e "C:\Inetpub\wwwroot\" con il percorso fisico della root sempre in remoto.


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.