从服务器删除镜像
本文关键字:镜像 删除 服务器 | 更新日期: 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