2012-08-06 49 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