上传图片到服务器,服务器保存并且接收到了,但是必须刷新文件夹或者重新部署文件才能在客户端显示图片

今天遇到了很大一个BUG 研究了半天终于解决!


当你从客户端上传图片到服务器时候,服务器保存了并且接收到了所有数据,数据库也存了,但是必须刷新文件夹或者重新部署文件才能在客户端显示刚才的图片  以下是解决办法

   注意!!!这句话才是获得webRoot下的upload文件夹 ServletActionContext.getServletContext().getRealPath("upload");

  如果直接写绝对路径来存上传的图片 肯定要刷新下才能看到了://"E:/workspase/MyBatisAndStrutsAndSpring/WebContent/upload/";



解决方案:  就是我上面说的那样 上传图片直接换ServletActionContext.getServletContext().getRealPath("upload");来存到webRoot下的upload文件夹

不要写绝对路径  OK 问题解决!



服务器代码:  接收都没问题   


public void zhuBo_insert() {
System.out.println(zhiBoEntity.getWangMing());
if(bigImg1==null){
System.out.println("bigImg is null");
}
if(touXiang1==null){
System.out.println("touXiang1 is null");
}
String dir=ServletActionContext.getServletContext().getRealPath("upload");
//"E:/workspase/MyBatisAndStrutsAndSpring/WebContent/upload/";
//ServletActionContext.getServletContext().getRealPath("upload");
System.out.println(dir);
//将图片放进去
File file=new File(dir,bigImg1FileName);
if(file.exists()){
file.mkdir();
}
try {
//彻底放进去....
FileUtils.copyFile(bigImg1, file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
File file1=new File(dir,touXiang1FileName);
try {
//彻底放进去....
FileUtils.copyFile(touXiang1, file1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// http://192.168.1.110:8080/MyBatisAndStrutsAndSpring/upload/test.png
Zhibo_zhuBoPlay zhiBo=new Zhibo_zhuBoPlay();
zhiBo.setBiaoTi(zhiBoEntity.getBiaoTi());
zhiBo.setBigImg("http://192.168.3.105:8080/MyBatisAndStrutsAndSpring/upload/"+bigImg1FileName);
zhiBo.setLeShiId(zhiBoEntity.getLeShiId());
zhiBo.setTouXiang("http://192.168.3.105:8080/MyBatisAndStrutsAndSpring/upload/"+touXiang1FileName);
zhiBo.setUserCount(zhiBoEntity.getUserCount());
zhiBo.setWangMing(zhiBoEntity.getWangMing());
zhiBo.setZhiBoUrl(zhiBoEntity.getZhiBoUrl());
int rows= dao.zhiBoInsert(zhiBo);
System.out.println(rows+":受影响行数");
}

你可能感兴趣的:(java)