String oldPic = student1.getIdcardpic(); // 获取之前的图片路径 if (oldPic==null){ out.print("文件名:"+fi.getName()); String oldName=fi.getName(); String houzhui=oldName.substring(oldName.lastIndexOf('.')); String newName= UUID.randomUUID()+houzhui; String path0=application.getRealPath("img"); out.print(path0+"<br/>"); File path=new File(path0); if(!path.exists()) path.mkdirs(); fi.write(new File(path,newName)); student.setIdcardpic("img/"+newName); }else { String oldName = fi.getName(); if (session.getAttribute("oldIdCardPic").equals("img/" + oldName)) { student.setIdcardpic("img/" + oldName); } else { String houzhui = oldName.substring(oldName.lastIndexOf('.')); String newName = UUID.randomUUID() + houzhui; String path0 = application.getRealPath("img"); out.print(path0 + "<br/>"); File path = new File(path0); if (!path.exists()) { path.mkdirs(); } File oldFile = new File(application.getRealPath(oldPic)); // 根据路径获取文件对象 if (oldFile.exists()) { // 如果文件存在 oldFile.delete(); // 删除文件 } fi.write(new File(path, newName)); student.setIdcardpic("img/" + newName); } } }
时间: 2024-02-14 10:17:43 浏览: 140
这段代码看起来像是一个 Java Servlet 中的文件上传处理,它首先获取学生的身份证图片路径,如果路径为空则生成一个新的文件名,并将上传的文件保存到指定的文件夹下,并将学生的身份证图片路径设置为新的文件路径;如果路径不为空,则获取上传的文件名,如果上传的文件名和之前的文件名相同,则不做任何操作,否则将上传的文件保存到指定的文件夹下,并将学生的身份证图片路径设置为新的文件路径,同时删除之前的图片文件。
相关问题
String oldName=fi.getName(); String houzhui=oldName.substring(oldName.lastIndexOf('.')); String newName= UUID.randomUUID()+houzhui; String path0=application.getRealPath("img"); out.print(path0+"<br/>"); File path=new File(path0); if(!path.exists()) path.mkdirs(); fi.write(new File(path,newName)); student.setIdcardpic("img/"+newName);将添加图片改成修改图片并删除之前的图片
好的,你可以将以下代码添加到你的代码中,以实现修改图片并删除之前的图片。
```java
String oldName = fi.getName();
String houzhui = oldName.substring(oldName.lastIndexOf('.'));
String newName = UUID.randomUUID() + houzhui;
String path0 = application.getRealPath("img");
out.print(path0+"<br/>");
File path = new File(path0);
if(!path.exists()) {
path.mkdirs();
}
String oldPic = student.getIdcardpic(); // 获取之前的图片路径
File oldFile = new File(application.getRealPath(oldPic)); // 根据路径获取文件对象
if (oldFile.exists()) { // 如果文件存在
oldFile.delete(); // 删除文件
}
fi.write(new File(path,newName));
student.setIdcardpic("img/" + newName);
```
这段代码会将新上传的图片保存到服务器中,并将旧的图片删除。请注意,这里假设 `student` 对象中有一个 `idcardpic` 属性,用来保存图片的路径。你需要根据实际情况修改代码。
String oldName=fi.getName(); String houzhui=oldName.substring(oldName.lastIndexOf('.')); String newName= UUID.randomUUID()+houzhui; String path0=application.getRealPath("img"); out.print(path0+"<br/>"); File path=new File(path0); if(!path.exists()) path.mkdirs(); fi.write(new File(path,newName)); student.setIdcardpic("img/"+newName);将添加图片改成修改图片并删除之前的图片,如果图片未修改则不变
好的,请参考以下代码实现:
```java
String oldName = fi.getName();
String houzhui = oldName.substring(oldName.lastIndexOf('.'));
String newName = UUID.randomUUID() + houzhui;
String path0 = application.getRealPath("img");
out.print(path0+"<br/>");
File path = new File(path0);
if (!path.exists()) {
path.mkdirs();
}
String oldPic = student.getIdcardpic(); // 获取之前的图片路径
if (!oldPic.equals("img/default.jpg")) { // 如果之前的图片不是默认图片
File oldFile = new File(application.getRealPath(oldPic)); // 根据路径获取文件对象
if (oldFile.exists()) { // 如果文件存在
oldFile.delete(); // 删除文件
}
}
fi.write(new File(path,newName));
student.setIdcardpic("img/" + newName);
```
这段代码会将上传的新图片保存到服务器中,如果之前的图片不是默认图片,则会将之前的图片删除。如果之前的图片是默认图片,则不会删除。请注意,这里假设 `student` 对象中有一个 `idcardpic` 属性,用来保存图片的路径。你需要根据实际情况修改代码。
阅读全文