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



我觉得我在这方面已经绕了一千圈,它应该比实际简单得多,但基本上我在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服务器打开该文件,但我认为我对IIS的了解还不够。

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

这里有一些示例,尽管它们不能代表你需要做的一切。其他人可以随意添加额外的资源。您的处理程序必须打开文件并将其写入输出流:

使用c处理程序提供wav文件可以缩短音频(仅几秒钟)ASP.net缓存ASX文件服务器端

  1. 不要使用像App_Data这样的文件夹来获取可下载的资源
  2. stackoverflow上也有一个类似的问题,它将一步一步地给您一个确切的答案——从服务器下载ASP.NET文件

从你的问题的标题来看,如果我理解正确,你想打开一个。单击链接或按钮上的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);

最新更新