【问题标题】:File doesn't start with %PDF-文件不以 %PDF 开头-
【发布时间】:2015-12-14 14:49:10
【问题描述】:

我在处理 fpdf 文件时遇到问题。我的页面创建了一个 PFD 文件,但在某些情况下会出现以下错误:

抱歉,它是荷兰语,但当您与客户合作时,它就是这样运作的。 无论如何,它说“文件不是以 %PDF-.Local\EWH-5128-2 开头的

有趣的是,如果我在本地主机上的网站上工作,它确实有效。这可能是服务器设置吗?

希望大家帮忙!提前致谢!

【问题讨论】:

  • 正确的描述在哪里?哪个页面,什么脚本?如此多的错别字,我什至不确定您是在谈论 fpdf、PDF、PDF 还是其他东西?你自己试过什么?
  • 这是经典 ASP 的插件还是从工作文件夹等生成的插件?
  • 从字面上看,它告诉您它正在查看的文件实际上可能不是 PDF 文档。 “Local\EWH-5128-2”实际上是 PDF 文档吗?如果这应该是一个文件名,我希望看到“.pdf”或其他说明符显示在最后;现在那里的内容可以被解释为其他内容(例如,最后没有特定文件名的文件夹路径)。因此,您实际上是在查看一种 [PDF] File Not Found 错误。
  • @acg_so 是的,这就是我发现的。但它确实在我的本地主机上工作,所以我想知道它是否与服务器设置或其他任何事情有关。
  • 你有没有试过Response.Write你的文件名到页面?另外,您是否使用Server.MapPath 来构建您的文件名?

标签: asp-classic pdf-generation fpdf


【解决方案1】:

解决方法如下:

在我的 fpdf.asp 中创建了一个临时 PDF 文件,然后在程序读取它之前将其删除。

            xfile=Server.MapPath(lib.fso.GetTempName())
            xf=lib.fopen(xfile,"wb");
            if(xf.number)this.Error("Unable to create output file: " + xfile);
            lib.fwrite(xf,this.buffer);
            lib.fclose(xf);
            outB = Server.CreateObject("ADODB.Stream")
            outB.Type = 1
            outB.Open()
            outB.LoadFromFile (xfile)
            Response.BinaryWrite(outB.Read())
            outB.Close()
     //       lib.fso.DeleteFile(xfile);

通过删除以下行解决了问题:lib.fso.DeleteFile(xfile);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    相关资源
    最近更新 更多