从服务器删除镜像

本文关键字:镜像 删除 服务器 | 更新日期: 2023-09-27 18:15:31

我正在编写一个代码,在Listview中选择图像并从服务器中删除它们。不幸的是,我没有能够删除任何图像和调试期间没有错误。下面是代码:

 <asp:ListView ID="ListView2" runat="server" DataKeyNames="ID_BG" DataSourceID="SqlDataSource_BGdelete">

<ItemTemplate>
                 <label><input id="checkbox1" name="BG_list" type="checkbox" runat="server" value='<%# Eval("BG_fileName") %>'/>
                <img alt="" style="width:150px" src="/Members/images/BG/icons/<%# Eval("BG_fileName") %>"></label>      
</ItemTemplate>
<LayoutTemplate>
                 <div id="itemPlaceholderContainer" runat="server" style="">
                     <span runat="server" id="itemPlaceholder" />
                 </div>
                 <div style="">
<asp:Button class="btn btn-default" ID="DeleteBackground" runat="server" Text="Delete" OnClick="DeleteBackground_click" />
                 </div>
             </LayoutTemplate>
 .....

背后的代码
protected void DeleteBackground_click(object sender, EventArgs e)
    {
        foreach (ListViewItem itemRow in this.ListView2.Items)
        {
            var checkBtn = (HtmlInputCheckBox)itemRow.FindControl("checkbox1");
            if (checkBtn.Checked)
            {
                string fileName = ("~/Members/images/BG/" + checkBtn.Value);
                if (fileName != null || fileName != string.Empty)
                {
                    if ((System.IO.File.Exists(fileName)))
                    {
                        System.IO.File.Delete(fileName);
                    }
                }

            }
        }
    }

从服务器删除镜像

这两行

if ((System.IO.File.Exists(fileName))) 
   System.IO.File.Delete(fileName);
必须

if (System.IO.File.Exists(Server.MapPath(fileName)))
   System.IO.File.Delete(Server.MapPath(fileName));

公立小学

检查if (fileName != null || fileName != string.Empty)是没有意义的,因为fileName永远不会为null或空。

可以肯定的是,id="checkbox1"是由渲染器重命名的,以便在itemlistview中不具有相同的id。查看生成的html