Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387

    Errore '800a0bba' con dowload forzato

    Ciao a tutti...
    Utilizzo questo codice qui

    codice:
    <%
    response.buffer = True 'importante
    
    IF len(request.querystring("preventivo")) > 0 THEN
        call downloadForzato(request.querystring("preventivo"))
    ELSE IF len(request.form("preventivo")) > 0 THEN
               call downloadForzato(request.form("preventivo"))
            ELSE
               response.redirect("../dettaglio_preventivo.asp")
           END IF
    END IF
    
    '**************** PROCEDURA PER L'invio del file al client **********
    Sub downloadForzato(down)
    DIM FType, objStream, percorso
    'La cartella di esempio è nominata "repository"
    'Il percorso virtuale assoluto
    percorso = (server.MapPath("public/preventivi/" & down))
    
    'Assegno il MIME TYPE
    FType = LCase(right(down, 4))
    SELECT CASE FType
         CASE ".asf" : FType = "video/x-ms-asf"
         CASE ".jpg", "jpeg" : FType = "image/jpg"
         CASE ".pdf" : FType = "application/pdf"
         CASE ELSE : FType = "application/octet-stream" 'Generico
    END SELECT
    
    Set objStream = Server.CreateObject ("ADODB.Stream")
    objStream.type = adTypeBinary
    objStream.Open
    objStream.LoadfromFile (percorso)
    
    Response.ContentType = FType
    Response.AddHeader "Content-Disposition", "attachment; filename="& down
    Response.AddHeader "Content-Length", objStream.Size
    Response.Charset = "UTF-8"
    
    Do While Not objStream.EOS
    	Response.BinaryWrite objStream.Read(1024)
    	Response.Flush
    Loop
    	
    objStream.Close
    Set objStream = Nothing
    
    End Sub
    %>
    per effettuare il download forzato di un file pdf, dopo il click di un link.

    Su un altro sito non mi da problemi, su un sito invece si, mi restituisce questo errore


    codice:
    ADODB.Stream error '800a0bba' 
    
    File could not be opened. 
    
    /area_preventivi/script/scarica_preventivi.asp, line 33
    la querystring è corretta, infatti la pagina precedente mi passa questo parametro:

    codice:
    script/scarica_preventivi.asp?preventivo=PREVENTIVO_16.pdf
    se inoltre dall'url digito direttamente l'url del preventivo, adobe mi si apre e me lo fa vedere.

    non ho proprio idee... ripeto, su un altro server mi funziona tranquillamente (ovvio che alcuni percorsi e alcune cartelle sono diverse, però)----

    grazie mille a tutti!

  2. #2
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Prova a farti stampare percorso per vedere dove punta:

    codice:
    percorso = (server.MapPath("public/preventivi/" & down))
    response.write percorso : response.end
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    Il percorso è quello corretto...
    Per evitare questo tipo di errore avevo introdotto anche il percorso diretto con

    "http://www.nomedelsito.com/etcetc"

    ma... mi restituisce sempre lo stesso identico errore:

    codice:
    ADODB.Stream error '800a0bba'
    
    File could not be opened.
    
    /area_preventivi/script/scarica_preventivi.asp, line 36
    dove la linea 36 è

    codice:
    objStream.LoadfromFile (percorso)
    Avevo provato per onor di cronaca anche un altro script, molto molto simile. L'errore restituito è però lo stesso....

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    Niente, sto impazzendo.

    Se digito a mano l'url diretto fino al file PDF, lo scarica tranquillamente.

    Se in percorso glielo scrivo direttamente..... invece di usare le variabili.... mi da quell'errore (che ho scoperto essere per file inesistente).


    Non so + come sbattere la testa, sinceramente. Su un altro sito (sempre su aruba, sempre asp, sempre cartella public) funziona tranquillamente. Stesse impostazioni.


    La domanda è a sto punto: dato che devo evitare (dato che i file pdf vengono creati in sequenza con "preventivo_XXXX.pdf") che qualche "smaliziato" se li vada a leggere digitando a casaccio gli url.... spero di essermi riuscito a spiegare... avete qualche altra idea per "proteggere" appunto i pdf che uno può scaricare solo quelli che gli riguardano?

    Esempio pratico:

    PIPPO crea il preventivo (e il pdf) 1, 3, 5 con preventivo_1.pdf, preventivo_3.pdf
    PLUTO crea il preventivo (e il pdf) 2, 4, 6 con preventivo_2.pdf....

    Tutto nella stessa cartella. Come faccio a impedire a pippo di andare a trovare a casaccio i pdf degli altri?

  5. #5
    il percorso non è un url, è un indirizzo fisico. ti devi far stampare

    codice:
    percorso = (server.MapPath("public/preventivi/" & down))
    
    response.write percorso: response.end 
    e vedere se il percorso è giusto (sarà qualcosa del tipo c:\\localhost\tuosito.ext\public\preventivi\etc)

    diciamo che a partire da tuosito.ext capisci o meno se il percorso è corretto o meno
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    OK....
    Rifatto....
    e in effetti probabilmente non ci siamo perchè percorso mi stampa:

    codice:
    D:\Inetpub\webs\nomedelsitoit\area_preventivi\script\public\preventivi\PREVENTIVO_16.pdf
    mentre (sono su aruba) la cartellina public dovrebbe (o meglio, è!) su

    D:\Inetpub\webs\nomedelsitoit\public\preventivi\PREVENTIVO_16.pdf

    salta quindi una cartella......

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    E' infatti bastato aggiungere un "/" prima di public.....



    niente, ho bisogno di ferie....

    grazie mille ragazzi!!!!!

  8. #8
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da orcim
    Prova a farti stampare percorso per vedere dove punta:

    codice:
    percorso = (server.MapPath("public/preventivi/" & down))
    response.write percorso : response.end
    Ti era stato già suggerito, no?
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    assolutamente si...
    è che non ci avevo fatto per bene caso io a che tipo di percorso mi stampava...

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.