2015-01-12 37 views
0

我在VS2012中設置了一個網站項目,並在項目FileStore中創建了一個文件夾。我創建了一個指向項目文件夾的IIS站點。爲什麼從服務器下載文件失敗

我有一個文件保存在FileStore文件夾中,我想允許用戶從網絡中的任何地方下載。

結構:project folder\FileStore\myFile.dat

我在哪裏project folder\我有一個按鈕的ASP.net頁面下載myFile.dat文件:

<asp:Button ID="Button3" runat="server" Text="Download File" OnClick="Button3_Click" Width="146px" Height="26px" /> 

C#:

protected void Button3_Click(object sender, EventArgs e) 
{ 

    // Download File Button after SP SSIS Job places it in the MLINT\files\ folder. 
    if (File.Exists("FileStore\\myFile.DAT")) { 
     Response.ContentType = "data/dat"; 
     Response.AppendHeader("Content-Disposition", "attachment; filename=myFile.DAT"); 
     Response.TransmitFile("FileStore\\myFile.DAT"); 
     Response.End(); 
    } 
    else 
    { 
     lblMessage.Text = "File doesn't exist in the system."; 
     lblMessage.CssClass = "fontRed"; 
    } 
} 

我一直收到File doesn't exist in the system.消息。

我該如何解決這個問題。

+0

你應該在你的IIS設置檢查你的MIME類型的路徑。我見過這種情況發生在無法識別的MIME類型上。 – Tim

+0

這取決於。是否「FileStore \\ myFile.DAT」是服務器已知的UNC路徑? –

+0

這不是一個UNC路徑,這是一個相對路徑...相對於項目文件夾。 UNC路徑將以「\\\\ ServerName \\ etc」開頭(四個反斜槓,因爲UNC路徑以兩個反斜槓開始,每個反斜槓必須以不以@開頭的C#字符串轉義)。 –

回答

3

您需要的路徑映射到所使用的web服務器

string actualPath = Server.MapPath("~\\FileStore\\myFile.DAT"); 
if (File.Exists(actualPath)) 
+0

是我認爲這解決了這個問題,我會測試一下並給你一個更新,謝謝 – SearchForKnowledge

+0

工作,謝謝! – SearchForKnowledge