Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Opening input file failed: The system cannot find the path specified.

    Ciao, avrei bisogno di un buon consiglio.

    Ho realizzato uno script ASP che crea un file PDF al volo per un download forzato.

    Il problema è che, a secondo le operazioni ed i carichi di lavoro in cui è impegnato il mio server, a volte lo script fallisce la creazione del suddetto file al volo e restituisce questo errore:

    codice:
    Opening input file failed. The error message is: 
    The system cannot find the path specified. 
    
    /_fileCreate/Include.asp, line 77 
    
    if _    
       ScriptObject.FileExists("C:\Documents and Settings\Administrator\My Documents\_downloadFile.pdf") _
    then 
       path_temp_1 = "C:\Documents and Settings\Administrator\My Documents\_downloadFile.pdf" 
    else
       response.write "ko"    
    end if   
    
    line77. Set Doc = Pdf.OpenDocument("C:\Documents and Settings\Administrator\My Documents\_downloadFile.pdf")
    In effetti non fallisce la creazione del file, ma lo script non fa in tempo a creare il file che prova ad aprirlo per controllarne il contenuto, da qui l'errore.

    Suggerimenti?
    Grazie mille
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  2. #2
    sempre con ScriptObject.FileExists controlli che esista prima di aprirlo!

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Originariamente inviato da optime
    sempre con ScriptObject.FileExists controlli che esista prima di aprirlo!
    Ok, grazie.
    Ma se esiste lo apro, ma se non esiste ?

    Esiste una maniera per attendere fino a quando il pdf al volo non sia stato regolarmente creato?
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  4. #4
    se non esiste non lo apri, che domande.

    se vuoi attendere puoi fare un ciclo do...loop che esce solo quando vedi che il file esiste. ricordati però di mettere un tempo massimo di attesa, altrimenti rischi di mandare in loop il server

  5. #5
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Ok grazie, intendi questo: ?

    codice:
    Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
    if _    
       ScriptObject.FileExists("C:\Documents and Settings\Administrator\My Documents\_downloadFile.pdf.pdf") _
    then 
       path_temp_1 = "C:\Documents and Settings\Administrator\My Documents\_downloadFile.pdf.pdf" 
       Set Pdf = Server.CreateObject("Persits.Pdf")
       Set Doc1 = Pdf.OpenDocument(path_temp_1) 
    else
       
        '''inizio ciclo attesa per x secondi
        x = 20
        t1 = Time
        t2 = Time
        Do While ((t2 - t1) * 86400) < x
            t2 = Time
        Loop
       
    end if    
        Set ScriptObject = Nothing
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  6. #6
    no. qualcosa del tipo

    do
    -- c'è?
    -- si, esco
    -- no
    -- -- ho aspettato troppo?
    -- -- si: esco comunque
    -- -- no:
    loop

  7. #7
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Ti seguo sino ad un certo punto ... :

    codice:
    do
    if _    
       ScriptObject.FileExists("C:\Documents and Settings\Administrator\My Documents\_downloadFile.pdf.pdf") _
    then 
       path_temp_1 = "C:\Documents and Settings\Administrator\My Documents\_downloadFile.pdf.pdf" 
    exit do
    else
    
    -- no
    -- -- ho aspettato troppo?
    
    exit do
    
    -- -- no:
    
    end if
    loop
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

  8. #8
    codice:
    path_temp_1 = "C:\Documents and Settings\Administrator\My Documents\_downloadFile.pdf" 
    BeginTime=Time()
    
    do
       if ScriptObject.FileExists(path_temp_1) then 
          esiste=true
          exit do
       end if
       if DateDiff("n",BeginTime,Time)>3 then ' aspetto 3 minuti, bastano?
          esiste=false
          exit do
       end if
    loop
    
    if esiste then
       ' c'è, procedi
    else
       ' non c'è, vedi tu cosa fare
    end if
    sono andato a orecchio

  9. #9
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    ...

  10. #10
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Grazie mille, funziona come si deve.
    Lo Stato dà un posto. L’impresa privata dà un lavoro. – Indro Montanelli

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.