通过按钮或超链接打开文件(doc,pdf)

时间:2014-09-16 16:21:23

标签: c# asp.net

我觉得我已经走了一千圈,它应该比它简单得多,但基本上我在asp.net中使用C#进行简单的简历提交页面。这些文件位于服务器的一个文件夹中,但是当我尝试执行它时,我发现每个解决方案都没有做任何事情。

以下是我尝试过的一些事情的一些例子:

string folder = "~/App_Data/Resumes/" + Session["ResumeName"].ToString();
string folder2 = Server.MapPath("~/App_Data/Resumes/" + Session["ResumeName"].ToString());

System.Web.VirtualPathUtility.ToAbsolute(folder);
System.Diagnostics.Process.Start(folder2);

我从来没有想过像从服务器打开文档这么简单的事情。难道只是简单地拥有一个文档链接并在用户点击它时打开它吗?这就是我想要完成的一切。谢谢你通过我的沮丧来阅读我。

澄清一下,System.Diagnostics.Process.Start(folder2);在本地工作,但在Web服务器上不起作用。我希望这可以在Web服务器上工作,这就是为什么一个出来的原因。我试图让Web服务器打开该文件,但我认为我对IIS的了解并不充分。

3 个答案:

答案 0 :(得分:2)

App_Data是ASP.NET中受保护的文件夹。 IIS不会直接从该文件夹向客户端提供任何内容 - 您需要构建一个直接为文档提供服务的处理程序。

以下是一些示例,但它们并不代表您需要做的所有事情。其他人可以随意添加额外的资源。您的处理程序必须打开文件并将其写入输出流:

Using a c# handler to serve up wav files cuts audio short (only a couple of seconds) ASP.net cache ASHX file server-side

答案 1 :(得分:0)

  1. 请勿使用App_Data等文件夹来获取可下载的资源。
  2. stackoverflow上有一个类似的问题,它将为您提供准确的逐步回答 - ASP.NET file download from server

答案 2 :(得分:0)

从问题的标题来看,如果我理解正确,您需要在链接或按钮上打开。doc.pdf。这将打开客户端上的相应文档。

<a id="lnkResume" href="#" runat="server" target="_blank">Download Resume</a>

您可以从下面的代码中设置动态简历名称

 string fileName = Session["ResumeName"].ToString();
 lnkResume.HRef = Server.MapPath("~/App_Data/Resumes/" + fileName);