jsp 删除图片
<%Stringname=request.getParameter("name");name=codeString(name);Stringurl="../myapp/"...
<%
String name=request.getParameter("name");
name=codeString(name);
String url="../myapp/";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:c9","","");
Statement sql=con.createStatement();
String sqlstr="select addr from book where name='"+name+"'; ";
ResultSet rs=sql.executeQuery(sqlstr);
if(rs.next()){
while(rs.next()){
String addr=rs.getString("addr");
int s1=addr.indexOf("/");
String n1=addr.substring(s1+1,addr.length());
String subPath=addr.substring(0,s1);
String FilePath=request.getRealPath("/")+url+subPath+"/";
java.io.File delFile=new java.io.File(FilePath,n1);
if(delFile.exists())
delFile.delete();//如果该文件存在,则删除
}
sql.executeUpdate("delete from book where name='"+name+"'");
out.println("<SCRIPT language=javascript>alert('删除书籍成功!');window.location='bookm.jsp';</script>");
}
else {sql.executeUpdate("delete from book where name='"+name+"'");
out.println("<SCRIPT language=javascript>alert('没有找到图片!删除信息成功!');window.location='bookm.jsp';</script>");
}
}catch(Exception e){}%>
我是这样想的 ,如果打不到图片的话,就删除对应的信息,找到图片的话就图片加信息一起删除 ,,可是它返回的总是“删除书籍成功”。
如果把if else 去掉的话,异常是null pointer说明找不图片.可是加上if else 返回的不是我想要的结果,,,
各位看一下上面哪个地方错了、、??
补充一下:
加上if else 反而只能删除信息而删除不了图片了
以前没加的时候能删除图片啊。。。
哎。。。不行啊。。。
照你这样来改 结果是删除了信息但是删除不了图片。。。 展开
String name=request.getParameter("name");
name=codeString(name);
String url="../myapp/";
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:c9","","");
Statement sql=con.createStatement();
String sqlstr="select addr from book where name='"+name+"'; ";
ResultSet rs=sql.executeQuery(sqlstr);
if(rs.next()){
while(rs.next()){
String addr=rs.getString("addr");
int s1=addr.indexOf("/");
String n1=addr.substring(s1+1,addr.length());
String subPath=addr.substring(0,s1);
String FilePath=request.getRealPath("/")+url+subPath+"/";
java.io.File delFile=new java.io.File(FilePath,n1);
if(delFile.exists())
delFile.delete();//如果该文件存在,则删除
}
sql.executeUpdate("delete from book where name='"+name+"'");
out.println("<SCRIPT language=javascript>alert('删除书籍成功!');window.location='bookm.jsp';</script>");
}
else {sql.executeUpdate("delete from book where name='"+name+"'");
out.println("<SCRIPT language=javascript>alert('没有找到图片!删除信息成功!');window.location='bookm.jsp';</script>");
}
}catch(Exception e){}%>
我是这样想的 ,如果打不到图片的话,就删除对应的信息,找到图片的话就图片加信息一起删除 ,,可是它返回的总是“删除书籍成功”。
如果把if else 去掉的话,异常是null pointer说明找不图片.可是加上if else 返回的不是我想要的结果,,,
各位看一下上面哪个地方错了、、??
补充一下:
加上if else 反而只能删除信息而删除不了图片了
以前没加的时候能删除图片啊。。。
哎。。。不行啊。。。
照你这样来改 结果是删除了信息但是删除不了图片。。。 展开
2个回答
展开全部
补充: 你把你后来的代码贴出来了。if 还是else if 要看你实际逻辑啊 这些都是你代码怎么写就怎么执行的啊。没有报错那就肯定是你 分支不正确哦。不看代码怎么知道你怎么弄的
好多问题
首先说你的关注的问题吧
if (delFile.exists()) 你这个地方 后面没有{ 是可以编译通过的,如果if条件满足 java默认执行后面第一句 反之如果不满足 除了第一句不执行 其余后面的都会执行啊,所以你里 不管有没有文件 打印的代码都会执行。
然后前面 if(rs.next()){
while(rs.next()){
这里有重大问题
if(rs.next()){ 的时候 游标已经开始走了 你第一条数据就漏掉了
好多问题
首先说你的关注的问题吧
if (delFile.exists()) 你这个地方 后面没有{ 是可以编译通过的,如果if条件满足 java默认执行后面第一句 反之如果不满足 除了第一句不执行 其余后面的都会执行啊,所以你里 不管有没有文件 打印的代码都会执行。
然后前面 if(rs.next()){
while(rs.next()){
这里有重大问题
if(rs.next()){ 的时候 游标已经开始走了 你第一条数据就漏掉了
展开全部
if(delFile.exists())
{
delFile.delete();//如果该文件存在,则删除
sql.executeUpdate("delete from book where name='"+name+"'");
out.println("<SCRIPT language=javascript>alert('删除书籍成功!');window.location='bookm.jsp';</script>");
}
{
delFile.delete();//如果该文件存在,则删除
sql.executeUpdate("delete from book where name='"+name+"'");
out.println("<SCRIPT language=javascript>alert('删除书籍成功!');window.location='bookm.jsp';</script>");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询