4 messaggi dal 20 aprile 2007
Ciao, ho trovato discussioni riguardo questo problema, ma non riesco ad adattare le soluzioni al mio caso:

vi posto la mia pagina attuale (che funziona con i file piccoli) e la soluzione che dicono funzionante, postata da Optime, di spezzettare i file, ma che non capisco (non sono io l'esperto ASP in "casa" ...) come adattare alla mia situazione... mi date una mano?

MIA PAGINA:

<%@Language="VBScript"%>
<!--#include Virtual="/Connections/Internet.asp" -->
<!--#include Virtual="/adovbs.inc" -->

<%

Dim ADOCon

Set ADOCon = Server.CreateObject("ADODB.Connection")
ADOCon.ConnectionTimeout = 0
ADOCon.Open MM_Internet_STRING

Set ADOCmdPar = Server.CreateObject("ADODB.Command")
ADOCmdPar.ActiveConnection = ADOCon
ADOCmdPar.CommandText = "sp_InsDownload"
ADOCmdPar.CommandType = adCmdStoredProc

'Response.Write("ID Conto =" & Request("C"))
'Response.Write("<BR>")
Set ADOParameter= ADOCmdPar.CreateParameter("@IDCONTO",adInteger,adParamInput,4,Request("C"))
ADOCmdPar.Parameters.Append ADOParameter
Set ADOParam=Nothing

'Response.Write("ID Contenuto =" & Request("IDC"))
'Response.Write("<BR>")
Set ADOParameter= ADOCmdPar.CreateParameter("@IDCONTE",adInteger,adParamInput,4,Request("IDC"))
ADOCmdPar.Parameters.Append ADOParameter
Set ADOParam=Nothing

AdoCmdPar.Execute

SQLstr = "SELECT NomeFile FROM dbo.WEB_EL_CONT_AREA_RIS WHERE ID_CONTEN=" & Request("IDC")

Set ADORst = Server.CreateObject("ADODB.RecordSet")
ADORst.Open SQLstr,ADOCon ,adOpenStatic,adLockReadOnly

Set download = Server.CreateObject("ADODB.Stream")
'Response.Write("Nome File =" & ADORst(0))
'Response.Write("<BR>")
' Apro la connessione e carico il file
download.Type = 1
download.Open
download.LoadFromFile Server.MapPath("/Dfiles/" & ADORst(0))

Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=" & Replace(ADORst(0), " ", "_")
Response.BinaryWrite download.Read

' Un po di pulizia...
download.Close
Set download = Nothing
%>


METODO PROPOSTO:

<%

'8***********************************************8
' Jason Withrow - For ASP101 July 2001
' This page forces the save as dialogue to prevent
' files from being opened in the browser.
'
' jwithrow@mediaone.net
'8***********************************************8


Response.Buffer = True

Dim strFilePath, strFileSize, strFileName

' added by edc 7.1.2003
' il nome del file viene passato in una session

If Session("FileName") = "" Then
Response.Redirect "default.asp"
End If

Dim oFso, oFile

strFilePath = Server.MapPath(Session("FileName"))
Set oFso = CreateObject("Scripting.FileSystemObject")
Set oFile = oFso.GetFile(strFilePath)
strFileName = UCase(oFile.Name)
strFileSize = CLNG(oFile.size)
Set oFile = Nothing
Set oFso = Nothing

' end add

Const adTypeBinary = 1

'strFilePath = Request.QueryString("File")
'strFileSize = Request.QueryString("Size")
'strFileName = Request.QueryString("Name")

Response.Clear

'8*******************************8
' Requires MDAC 2.5 to be stable
' I recommend MDAC 2.6 or 2.7
'8*******************************8
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

strFileType = lcase(Right(strFileName, 4))

' Feel Free to Add Your Own Content-Types Here
Select Case strFileType
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
ContentType = "application/x-zip-compressed"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".asp"
ContentType = "text/asp"
Case Else
'Handle All Other Files
ContentType = "application/octet-stream"
End Select

Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
Response.AddHeader "Content-Length", strFileSize
' In a Perfect World, Your Client would also have UTF-8 as the default
' In Their Browser
Response.Charset = "UTF-8"
Response.ContentType = ContentType

Do While Not objStream.EOS
Response.BinaryWrite objStream.Read(1024)
Response.Flush
Loop

objStream.Close
Set objStream = Nothing

%>
10 messaggi dal 28 ottobre 2007
Ciao, io ho risolto il problema del download dei file >4MB modificando un parametro su IIS.
Il parametro in questione si chiama "ASPMaxRequestEntityAllowed" (se non ricordo male).

Se non hai problema a modificare questo parametro su IIS provaci (non vale per iis7).
Puoi fare cosi':
- apri una shell ms-dos
- vai nella cartella <disco>:\inetpub\adminscripts (o quale per essa)
- lancia:
Cscript.exe adsutil.vbs SET "W3SVC/1/ASPMaxRequestEntityAllowed" "51200000"
(vale per il sito n°1)

Spero di non aver detto una cavolata.
ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.