在数据库中显示图像,其中PAth位于其他驱动器中

时间:2016-05-14 06:09:55

标签: c# asp.net image gridview query-string

我想根据用户ID在网格视图中显示图像。问题是我的图像存储在另一个驱动器中,而不是存储在网站文件夹中。即使我得到了路径,也不允许我显示图像。

根据此链接How to display image which is stored in local drive?

在该帖子中,答案建议创建另一个页面,根据ID传递查询字符串或其他内容。

我是新手,并且不知道如何使用查询字符串。

我写了以下代码: -

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
         <Columns>
             <asp:BoundField DataField="User_ID" HeaderText="User_ID" />
             <asp:ImageField DataImageUrlField="Photo_File_Path" HeaderText="Photo_File_Path">
             </asp:ImageField>
         </Columns>
     </asp:GridView>


SqlConnection con = new SqlConnection(CS);
        SqlCommand cmd = new SqlCommand("SELECT User_ID, Photo_File_Path FROM User_M", con);
        con.Open();

        SqlDataReader rdr = cmd.ExecuteReader();
        GridView1.DataSource = rdr;
        GridView1.DataBind();
        con.Close();

如何让我的代码使用查询字符串或者如果有其他方式我可以显示图像。

谢谢。

2 个答案:

答案 0 :(得分:0)

我不知道这是否仍然适用,但这里有:

您的WebServer正在用户帐户下运行,计算机上的所有服务也是如此。它通常是一个帐户名,如 IUSR 或类似的东西。

在您拥有文件的驱动器上,您可以右键单击该文件夹,并通过访问权限允许对该用户的读访问权限。

这仅适用于您可以自行控制的服务器,当然也不会扩展到Azure或其他托管环境。但它应该可以解决您的问题,前提是它仍然是如何解决这个问题的。

编辑:你链接的帖子是5岁。我完全相信它会保持警惕:)

答案 1 :(得分:0)

虽然不能解决您的具体问题,但您可能希望查看在IIS中设置虚拟目录,以便从计算机上的任何位置映射目录,例如站点的子目录。 / p>

因此,假设您的网站位于C:\sites\mySite,您可以将目标D:\data\images\映射为C:\sites\mySite\userImages,以便您的网站可以http:\\mysite.com\userImages引用该网站。

这可能是组织网站结构的一种更简单的方法,您可以移动该物理目录,而不必更改网站代码。

希望你能以任何方式继续工作。 :)

编辑:此链接提供了设置此信息所需的信息: https://www.iis.net/configreference/system.applicationhost/sites/site/application/virtualdirectory