关于删除图片的问题 在线等,希望有高人帮帮忙看下

luyuanshangao 2008-06-05 04:50:11
每张图片对应一个input的checkbox ,选中要删除的图片后点击一个删除按钮,会提示删除成功,数据库和文件夹里都删除了,页面也刷新了,但是显示出来的却是 删除的图片依然在,只是显示成一个X的样子,然后再一次刷新的时候就没问题了,X不见了,请问这是怎么回事啊

删除图片的javascript代码
//批量删除相片
function DeletePhotos()
{
var checks=new Array();
var checklist=imgdiv.getElementsByTagName("INPUT");
var str="";
var count=0;
for(var i=0;i<checklist.length;i++)
{
if(checklist[i].type=='checkbox'&&checklist[i].checked)
{
checks[count]=checklist[i].name;
count++;
}
}
if(confirm("确定要删除吗?"))
{
for(var j=0;j<checks.length;j++)
{
str=UploadPhoto.DeletePhoto(checks[j]);
}
alert(str.value);
var FolderID="<%=FolderID %>";
imgdiv.innerHTML="";
imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value;
}
}
红色部分的代码:
[AjaxPro.AjaxMethod]
public string DeletePhoto(string PhotoID)
{
DataTable dt = QTNowService.GetPhotoByPhotoID(new Guid(PhotoID));
for (int i = 0; i < dt.Rows.Count; i++)
{
string saveFileName = Path.Combine(Server.UrlDecode(path), dt.Rows[i]["FileName"].ToString());
if (!File.Exists(HttpContext.Current.Server.MapPath("UploadImages/") + Membership.GetUser() + "\\" + dt.Rows[i]["FolderName"].ToString() + "\\" + dt.Rows[i]["FileName"].ToString()))
{
File.Delete(saveFileName);
}
}
if (QTNowService.DeletePhoto(new Guid(PhotoID)) == true)
{
return "删除成功!";
}
else
{
return "删除失败!";
}
}


...全文
113 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
dqlfjy 2008-06-06
  • 打赏
  • 举报
回复
显示代码的问题吧,既然数据库时的记录和物理地址的文件都已删除,那么关于删除的代码就是正确的.
你应该检查显示图片的代码部分.
luyuanshangao 2008-06-05
  • 打赏
  • 举报
回复
if(confirm("确定要删除吗?"))
{
for(var j=0;j <checks.length;j++) //这里有问题,现在的checks.length还是删除以前的值,删除了以后checks.length-1了
{
str=UploadPhoto.DeletePhoto(checks[j]);
}
这里删除之后我就在下面重新输出了,不会再去执行上面的代码了啊
alert(str.value);
var FolderID=" <%=FolderID %>";
imgdiv.innerHTML="";
imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value;
}
liqiang8 2008-06-05
  • 打赏
  • 举报
回复
if(confirm("确定要删除吗?"))
{
for(var j=0;j <checks.length;j++) //这里有问题,现在的checks.length还是删除以前的值,删除了以后checks.length-1了
{
str=UploadPhoto.DeletePhoto(checks[j]);
}
alert(str.value);
var FolderID=" <%=FolderID %>";
imgdiv.innerHTML="";
imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value;
}
luyuanshangao 2008-06-05
  • 打赏
  • 举报
回复
是删除之后才刷新的,你看一下我前面贴的代码
luyuanshangao 2008-06-05
  • 打赏
  • 举报
回复
那请问楼上是怎么解决的
liqiang8 2008-06-05
  • 打赏
  • 举报
回复
lz什么时候刷新页面的?如果是删除了图片(还没有删除数据库记录)就刷新的话,肯定一个X了.再一次刷新的时候执行了删除数据库,那条记录也就没有出来了.
Magic_YJL 2008-06-05
  • 打赏
  • 举报
回复
我曾经遇到过跟你一模一样的问题,呵呵
luyuanshangao 2008-06-05
  • 打赏
  • 举报
回复
而且UploadPhoto.MyPath(FolderID).value得到的值是没有问题的
luyuanshangao 2008-06-05
  • 打赏
  • 举报
回复
imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value;
这句代码就是重新输出图片的
liqiang8 2008-06-05
  • 打赏
  • 举报
回复
删除后重新绑定图片
luyuanshangao 2008-06-05
  • 打赏
  • 举报
回复
我是动态显示的图片
liqiang8 2008-06-05
  • 打赏
  • 举报
回复
删除成功了以后吧放图片的控件隐藏起来
luyuanshangao 2008-06-05
  • 打赏
  • 举报
回复
UploadPhoto.MyPath(FolderID).value是可以确定有值的
而且断点调试的时候UploadPhoto.MyPath(FolderID).value的值是没有问题的
但就是显示出来时删除掉的图片会显示成一个X,要再次刷新后才会消失
chg2001868 2008-06-05
  • 打赏
  • 举报
回复
" imgdiv.innerHTML =UploadPhoto.MyPath(FolderID).value; "
这句话有问题的,你要根据UploadPhoto的返回值判断,图片删除后按正常来说UploadPhoto.MyPath(FolderID).value
应该没有值的,只有有图片的时候才这样写.要加判断吧
if(filePath!="")
{
imgdiv.innerHTML ="<img scr= test scr=filePath />"
}
weiphone 2008-06-05
  • 打赏
  • 举报
回复
本地localhost好像有时候图片是浏览不出来的

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧