2012-08-06 45 views
0

ASP.NET VB文件下载我从数据库中填充的表在我的VB ASP.NET应用程序,就像这样:从表链接

<dl class="row"> 
    <dd style="width:20%; background:none;"> 
     <%# Eval("name")%> 
    </dd> 
    <dd style="width:20%;"> 
     <%# Eval("description")%> 
    </dd> 
    <dd style="width:30%;"> 
     <a href="<%# Eval("templateLink")%>"><%# Eval("templateId")%></a> 
    </dd> 
</dl> 

现在,我已经在templateLink保存链接到模板,我使用Guid作为它的名字,即templateId。 现在,当我点击该链接时,我希望能够保存文件,但现在它不这样做。我甚至无法访问服务器上的文件(在我可以访问但仍无法下载的开发环境上)。

这是我正在使用的路径。

<configuration> 
    <appSettings> 
     <add key="UploadLocation" value="C:\inetpub\wwwroot\MyProject\Intranet\Resources\"/> 
    </appSettings> 
<configuration> 

这是上传代码:

Dim TempEx As String = System.IO.Path.GetExtension(fuTemp.FileName) 
Dim TempPath As String = ConfigurationManager.AppSettings("UploadLocation") 
Dim TempName As String = report.TempID.ToString + TempEx 

fuTemp.PostedFile.SaveAs(TempPath + TempName) 

report.TemplateLink = TempPath + TempName 

正如你所看到的,我节省了我使用后创建a href为表其路径TemplateLink。我尝试了使用我在网络上发现的几种解决方案,但无法使用它。

如果可能的话,请澄清这个问题对我来说:(

谢谢

回答

0

你想存储UploadLocation为相对路径:

<add key="UploadLocation" value="/Intranet/Resources/"/>

在你上传代码,使用Server.MapPath(ConfigurationManager.AppSettings("UploadLocation")来获取文件系统路径。

然后绑定TempPath + TempName应该给你一个正确的HTTP链接而不是文件系统路径。

+0

也试过了。同样的事情发生。 – rexdefuror 2012-08-06 10:51:36

+0

更确切地说,我使用了这样的相对路径:'“〜/ Intranet/Resources /”'。它正确地指向相同的文件,但它返回文件系统路径,与前一个相同。 – rexdefuror 2012-08-06 10:57:58

+0

省略'〜'。所以你分别使用'fuTemp.PostedFile.SaveAs(Server.MapPath(TempPath)+ TempName)'和'report.TemplateLink = TempPath + TempName'?并且在设置'TempPath'的值时不使用'Server.MapPath'? – lukiffer 2012-08-06 14:14:46