0

PDFドキュメントを生成してダウンロードしたい

//this is file name
var fileName = name + "_" + DateTime.Now.ToShortDateString() + ".pdf";
//here I generate my pdf document
string fullpath=  GeneratePDF();

bool existFile= File.Exists(fullpath);
//here I check if this document exists
   if (existFile)
    {
        HttpContext.Current.Response.ContentType = "Application/pdf";
        HttpContext.Current.Response.AppendHeader("Content-Disposition", 
                                        "attachment; filename=" + fileName);
        HttpContext.Current.Response.TransmitFile(fullpath);
        HttpContext.Current.Response.Flush();
        HttpContext.Current.Response.End();
  }

すべてのタラを通過した後、ドキュメントは正常に作成されますが、ダウンロードは機能しません

4

2 に答える 2

2

次のコードを使用していますが、さまざまな種類のドキュメントを強制的にダウンロードしています。

 if (myfile.Exists)
 {
     //Clear the content of the response    
      try
      {
          Response.ClearContent();
         // Add the file name and attachment, which will force the open/cancel/save dialog box to show, to the header    
         Response.AddHeader("Content-Disposition", "attachment; filename=" + myfile.Name);
         // Add the file size into the response header    
         Response.AddHeader("Content-Length", myfile.Length.ToString());    // Set the ContentType    
         Response.ContentType = ReturnMimeType(myfile.Extension.ToLower());    // Write the file into the response (TransmitFile is for ASP.NET 2.0. In ASP.NET 1.1 you have to use WriteFile instead)    
         Response.TransmitFile(myfile.FullName);
         Response.Flush();
         Response.Close();
         Response.End();
        }
        finally
        {
            File.Delete(myfile.FullName);
        }
  }

...

PDF ファイルの場合、ReturnMimeType には次の行が含まれます。

case ".pdf": return "application/pdf";
于 2012-09-24T08:29:20.207 に答える
1

これを試して

Response.ContentType = "application/pdf";
Response.AddHeader("Content-disposition", "inline");
Response.BinaryWrite(File.ReadAllBytes(Server.MapPath(fullpath)));
于 2012-09-24T08:27:18.893 に答える