Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581

    Problema con ADODB.Stream

    ciao
    premetto che ho letto tutti i post precedenti .. ma la soluzione non l'ho trovata

    la cartella sul server inoltre ha i permessi di lettura

    in pratica voglio far scaricare un file, qualsiasi estensione esso abbia, facendo comparire direttamente la finestra di download
    "qualsiasi estensione esso abbia" perchè i file son messi sul server dall'admin del sito e nessuno tranne lui può fare operazioni sui file via http

    eccovi il codice:
    codice:
    <%
    if session("cl_login") = "" or Len(Trim(session("cl_login"))) = 0 or Trim(session("cl_login")) = "" or IsNull(session("cl_login")) then
    	response.Redirect("login_if.asp?S=" & sezione)
    else
    	
    	sub1 = request("sub1")
    	sub2 = request("sub2")
    	sub3 = request("sub3")
    	sub4 = request("sub4")
    	sub5 = request("sub5")
    	nomefile = request("nomefile")
    	path_base = "public/clients/" & session("cl_user") & "/"
    	response.write("nomefile = " & nomefile)
    	
    	if sub1 = "" and sub2 = "" and sub3 = "" and sub4 = "" and sub5 = "" then
    		path_base = path_base
    	else
    		if sub1 <> "" then
    			Redim preserve ArrDir(0)
    			ArrDir(0) = sub1
    		end if
    		if sub2 <> "" then
    			Redim preserve ArrDir(1)
    			ArrDir(1) = sub2
    		end if
    		if sub3 <> "" then
    			Redim preserve ArrDir(2)
    			ArrDir(2) = sub3
    		end if
    		if sub4 <> "" then
    			Redim preserve ArrDir(3)
    		end if
    		if sub5 <> "" then
    			Redim preserve ArrDir(4)
    			ArrDir(4) = sub5
    		end if
    	end if
    	
    	if isarray(ArrDir) then
    		path_base = path_base
    		for x = 0 to ubound(ArrDir)
    			path_base = path_base & ArrDir(x) & "/"
    		next
    	end if
    	
    	Dim objStream
    	Set objStream = Server.CreateObject("ADODB.Stream")
    	objStream.Type = 1 ' adTypeBinary
    	objStream.Open
    	objStream.LoadFromFile Server.MapPath(path_base & nomefile)
    	' Istruiamo il browser sul tipo di file
    	Response.AddHeader "Content-Disposition", "attachment; filename=" & nomefile
    	Response.ContentType = "application/octet-stream"
    	Response.CharSet = "UTF-8"
    	Response.BinaryWrite objStream.Read
    	objStream.Close
    	Set objStream = Nothing
    
    end if
    %>
    mi da due errori strani:
    1. ho provato a scaricare un file da 5mb e me lo ha salvato si, ma è 1kb, pr la precisione sui 400-450 byte!!!
    2. i file che hanno spazi nel nome li tronca, per esempio il file "01 nome file.zip" mi chiede di salvarlo come "01" senza null'altro

    Ah il server di prova è un 2003 se può esser utile

    qualche guru ch mi aiuti?

  2. #2
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Devi cercare per "forzare download" ci sono decine di esempi.

  3. #3
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    il fatto è che ho cercato e la soluzione non l'ho trovata altrimenti non postavo :|

    il codice in se funziona e lancia la finestra di DL .. ma da gli errori che ho scritto sopra:
    1. ho provato a scaricare un file da 5mb e me lo ha salvato si, ma è 1kb, pr la precisione sui 400-450 byte!!!
    2. i file che hanno spazi nel nome li tronca, per esempio il file "01 nome file.zip" mi chiede di salvarlo come "01" senza null'altro

    quindi..se ci fosse qualche guru dell'adodb.stream gliene sarei grato

    va bene anche codice asp che funziona, poi me lo adatto di conseguenza ... ma almeno faccia scaricare il file col suo reale nome e con la sua fimensione giusta

  4. #4
    Ho lo stesso problema: non scarica i file + pesanti di 4 MB !!!
    Tu hai risolto?
    Potrebbe centrare questa cosa:
    odbc.defaultlrl return up to 4096 bytes

    che ho trovato nel php.ini (esiste un analogo asp.ini ? e come si visualizza?)

    come si modifica questa limitazione?


    Per quanto riguarda i nomi con gli spazi, a me funziona correttamente! Hai controllato che il nomefile non venga tagliato prima di passarlo a ADOB.Stream? in tal caso sarebbe sufficiente un replace per togliere lo spazio prima e un altro replace per rimetterlo dopo (vedi le funzioni URLEncode e URLDecode)...
    henry

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.