私は以下のスクリプトを使用しています。これは、ローカル(Windows 10 IIS、Windows 2003 Server)では正常に動作しますが、当社のホストサーバー(Windows 2003 Server)では動作しません。 4MB以上のファイルは、ファイルの最後に到達する前に実際には遅くなり、その後タイムアウトになるでしょう。ただし、ローカルでは、高速で完全なダウンロードが行われます。ASPクラシック、特定のサーバーで大きなファイルをダウンロードできない
ダイレクトダウンロード(ファイルへのリンク)を行うと、当社のホスティングプロバイダサーバから5秒後に26.5MBのファイルがダウンロードされます。したがって、ダウンロード制限に問題はありません。ホスティングサーバーとこのスクリプトのような問題があります。何か案は?
Response.AddHeader "content-disposition","filename=" & strfileName
Response.ContentType = "application/x-zip-compressed" 'here your content -type
Dim strFilePath, lSize, lBlocks
'Const CHUNK = 2048
' Thanks to Lankymart. I have set this and it download at 1.5MB a second, so that is running pretty well for what I need it to be.
Const CHUNK = 2048000
set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromfile Server.MapPath("up/"&strfileName&"")
lSize = objStream.Size
Response.AddHeader "Content-Size", lSize
lBlocks = 1
Response.Buffer = False
Do Until objStream.EOS Or Not Response.IsClientConnected
Response.BinaryWrite(objStream.Read(CHUNK))
Loop
objStream.Close
を使用しています。私はデフォルト設定が4MBだと信じています... – sgeddes
上記のとおりです。あなたはファイルを直接ダウンロードすることができ、大きなファイルをまったくダウンロードしません。ちょうどスクリプトではありません。 –
それはページ内のすべてのコードですか、それともスニペットですか?おそらく減速の原因になるかもしれませんか?チャンクサイズを大きくするのはどうですか?例として、1つのチャンク*(2048バイト)*を読むには100ミリ秒かかります。つまり、4 MBファイルのダウンロードには約3分かかりますが、チャンクサイズを20480 *(20 KB)約。 20秒、違いを参照してください? – Lankymart