簡體   English   中英

如何在不顯示物理路徑的情況下顯示文件夾中的文件?

[英]How to display a file in a folder without showing physical path?

我使用.NET 框架。 我在一個文件夾中有一個文件。 物理路徑如:

https://example.com/folders/123aaa.jpg

我有一個按鈕可以重定向此鏈接。 但我不想展示這條道路。 我希望用戶看到:

https://example.com/display.aspx

有沒有辦法做到這一點?

<asp:Button ID="eg" runat="server" CausesValidation="false" CommandName="Save"

private void save(int i)
{
    GridViewRow row = GridView7.Rows[i];
    string sid = row.Cells[0].Text;
    SqlCommand cmd = new SqlCommand("xxx", con);
    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@id", sid);         
    con.Open();
    SqlDataReader rd = cmd.ExecuteReader();
    if (rd.HasRows)
    {
        while (rd.Read())
        {
            string url = rd[0].ToString();
        }
    }

    Response.Redirect(url,false); 
}

不,您的客戶必須發送某種形式的標識符。 否則,您的服務器如何知道他們請求的是哪個文件? 瀏覽器發送的任何標識符都可以由用戶檢查。

所以你試圖通過默默無聞來應用安全性。

如果您不希望客戶端知道文件夾名稱folders或文件名123aaa.jpg ,則必須通過映射來掩蓋它,例如映射到實際文件路徑的大隨機名稱。

例如,您可以通過將隨機名稱和實際路徑保存在數據庫中,並創建一個查找文件的處理程序來執行此操作:

/images.ashx?file=abc-123-456

然后該 ASHX 處理程序在數據庫中查找名為abc-123-456的文件,並將實際文件寫入響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM