Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    456

    permettere il download di un file che non sta dentro la wwwroot

    Ciao, tramite un link, devo poter far scaricare un file, che pero' non sta nella cartella wwwroot, ma sotto una cartella in C (ovviamente del server).
    HO provato mettendo il semplice percorso C:\ ecc ecc, ma non trova il file.

  2. #2
    lo trova, ma forse non hai i diritti. ricordati che l'utente e' IUSR_nomemacchina

  3. #3
    Devi farti una funzione che legga lo stream (i byte) del file e ti restituisca per fare il download.

    Ti passo questa funzione a cui passi due parametri, il percorso completo del file c:\file.txt e il nome del file ocn cui venga scaricato es. ciao.txt:

    codice:
    '======================================================
    ' Funzione che effettua il download di un file da filesystem
    '======================================================
    Sub downloadFile(strFilename,saveas)  
    
    	dim s,fso,f,intFilelength, binaryData
    	  
    	 ' pulisco il buffer
    	 Response.Buffer = True  
    	 Response.Clear  
    	  
    	 ' creo lo stream
    	 Set s = Server.CreateObject("ADODB.Stream")  
    	 s.Open  
    	  
    	 ' imposto il binario
    	 s.Type = 1  
    	  
    	 ' carico il file
    	 on error resume next  
    	 	  
    	 ' controllo se esiste il file
    	 Set fso = Server.CreateObject("Scripting.FileSystemObject")  
    	 if not fso.FileExists(strFilename) then  
    		Response.Write("<font style=""font-face : Verdana; font-size : 8pt"">Errore: il file " & strFilename & " non esiste.</font>")  
    		Response.End  
    	 end if  
    	  
    	  
    	 ' recupero la lunghezza del file
    	 s.LoadFromFile(strFilename)  
    	 intFilelength = s.Size
    	 
    	 if err then  
    		 Response.Write("<h1>Errore: </h1>" & err.Description & "
    
    ")  
    		Response.End  
    	 end if  
    
    	 ' Manda l'header al browser 
    	 if lcase(Right(saveas,3)) = "pdf" then
    		Response.AddHeader "Content-Disposition", "attachment;filename=" & saveas
    	else		
    		Response.AddHeader "Content-Disposition", "filename=" & saveas
    	end if
    	 	 
    	 Response.AddHeader "Content-Length", intFilelength  
    	 Response.CharSet = "UTF-8"  
    	 Response.ContentType = "application/save; name=" & saveas
    	 Response.AddHeader "Pragma", "no-cache"
    
    	 'response.write binaryData
    	 binaryData = s.Read
    	 
    	 ' chiudo tutto
    	 s.Close  
    	 Set s = Nothing  
    
    	 
    	 ' scrivo sul browser il file
    	 Response.BinaryWrite binaryData
    
    	 Response.Flush
    	 
    	 
    	 
     End Sub

  4. #4

    io ho un problema con questo script

    CIao...mi sembra uno script molto buono ma ho un problema.
    Al posto di fare il download mi visualizza caratteri senza senso in explorer. Hai idea del motivo?
    -------------------------
    CENTROCANOA.COM

  5. #5
    Nella funzione che ho girato hai modificato qualcosa?
    perchè per come è strutturata dovrebbe evitare di vedere i caratteri strani (che poi è la rappresentazione del contenuto del file)
    e forzare il download!

    L'unica cosa che posso provare a dirti di fare, in fondo sotto a Response.Flush aggiungi Response.end

  6. #6
    Utente di HTML.it L'avatar di Galex
    Registrato dal
    Aug 2002
    Messaggi
    667
    assicurati anche di non aver "stampato" a video nient'altro quando richiami quella funzioni...

  7. #7
    ho risolto...grazie a tutti...
    E' bastato chiudere il browser e riprovare...in effetti avevo cambiato il codice perche' ottenevo quei caratteri mostrati nel browser e poi, al posto di chiudere e riprovare, facevo "refresh".
    Ora funziona tutto....THANX
    -------------------------
    CENTROCANOA.COM

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.