小编Ste*_*CET的帖子

页面加载时经典的 ASP 下载 PDF

我想创建一个页面,该页面可以显示一条消息“您的下载即将开始”,然后几秒钟后打开一个“另存为”对话框,允许访问者下载文件。这在经典 ASP VB 脚本中是可能的吗?我知道如何使页面流成为文件,但它不显示页面的 html。我提供的文件是 20Mb,所以脚本需要处理大文件。

我目前有一个元重定向:

<meta http-equiv="refresh" content="2; url=/downloads/brochures/ACET_Products_and_Services_Directory_2013-14.pdf" />
Run Code Online (Sandbox Code Playgroud)

但这真的不是什么好事。

我在我的服务器上安装了 asppdf,并试了一下:

<%
Set Pdf = Server.CreateObject("Persits.Pdf")
Set Doc = Pdf.OpenDocument("d:/websites/common/downloads/brochures/ACET_Products_and_Services_Directory_2013-14.pdf")
Doc.SaveHttp "attachment;filename=ACET_Products_and_Services_Directory_2013-14.pdf"
%>
Run Code Online (Sandbox Code Playgroud)

这绕过了大文件,但您不能同时传输文件和显示 HTML。

我找到了很多方法将文件流式传输到浏览器,但是在页面显示后我无法这样做。

这是我尝试过的另一种:

<% 
    Response.Buffer = False 
    Server.ScriptTimeout = 30000 

    Response.ContentType = "application/x-unknown" ' arbitrary 
    fn = "ACET_Products_and_Services_Directory_2013-14.pdf" 
    FPath = "d:\websites\common\downloads\brochures\" & fn 
    Response.AddHeader "Content-Disposition", "attachment; filename=" & fn 

    Set adoStream = CreateObject("ADODB.Stream") 
    chunk = 2048 
    adoStream.Open() 
    adoStream.Type = 1 
    adoStream.LoadFromFile(FPath) 

    iSz = adoStream.Size 

    Response.AddHeader "Content-Length", iSz 

    For i = 1 To …
Run Code Online (Sandbox Code Playgroud)

vbscript asp-classic

0
推荐指数
1
解决办法
7665
查看次数

标签 统计

asp-classic ×1

vbscript ×1