我有一个aspx页面,它返回一个包含以下代码的pdf文件:
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ContentType = "application/pdf"
HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=Order-" & Request("OrderNo") & ".pdf")
HttpContext.Current.Response.BinaryWrite(pdfContent)
HttpContext.Current.Response.End()
需要对代码进行哪些修改才能将文件保存到服务器上的硬盘驱动器中?我想BinaryWrite必须用其他东西替换,但是什么?
我非常感谢您的帮助!
答案 0 :(得分:4)
只需将Path和pdfcontent指定为File.WriteAllBytes
方法的参数,如下所示:
File.WriteAllBytes(Server.MapPath("~/SubdirectoryInCurrentWebApp"),pdfContent);
除非您使用具有足够权限写入目标目录的用户配置应用程序运行的应用程序池,否则通常无法保存本地应用程序目录之外的任何内容。但是开箱即用,您应该能够写入Web应用程序内的子目录。
答案 1 :(得分:2)
您可以通过调用File.WriteAllBytes
将二进制数据写入磁盘。
答案 2 :(得分:0)
如果您只想将pdfContent
中的字节转储到文件中,那么IO.File.WriteAllBytes("{A path}",pdfContent)
应该这样做。