写了一个图书馆管理系统,每次上传图片后都需要手动打开idea,前端才能读取到新的图片
应该怎么解决?
上传后前端查询信息,读取不到图片
手动打开idea,图片出现了
再次返回前端获取书籍信息,成功输出图片
上传图片具体代码如下
@Override
public String addGoods(Goods goods, String act, HttpServletResponse response) throws IOException {
if (act.equals("add")){
String bname = goods.getBname();
if(goodsRepository.booksIsExist(bname)>0){
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("");
out.flush();
}
else{
MultipartFile myfile = goods.getFileName();
//如果选择了上传文件,将文件上传到指定的目录images
if(myfile.getSize()>0) {
//获得上传文件原名
//上传文件路径(开发环境)
String path = "/Users/hopperrose/Documents/demo/src/main/resources/static/images";
//获得上传文件原名
String fileName = myfile.getOriginalFilename();
//对文件重命名
String fileNewName = MyUtil.getNewFileName(fileName);
File filePath = new File(path + File.separator + fileNewName);
//如果文件目录不存在,创建目录
if(!filePath.getParentFile().exists()) {
filePath.getParentFile().mkdirs();
}
//将上传文件保存到一个目标文件中
myfile.transferTo(filePath);
//将重命名后的图片名存到goods对象中,添加时使用
goods.setBpicture(fileNewName);
}
int n = goodsRepository.addGoods(goods);
if(n > 0){//成功
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("");
out.flush();
return "redirect:/goods/selectAllBooksByPage?currentPage=1&act=select";
}
}
}
你好,你这种情况是在本项目的目标路径生成资源,这种方式受限于项目编译,因为真正读取的路径是在target编译后的文件夹中,而且如果直接指定到编译文件夹,下次重新编译静态文件全部失效,最好不要在本项目路径下,可以在d盘或其他位置,亲测。
指定
spring:
web:
resources:
static-locations: file:xxxx
刚刚搞项目的时候需要将自己写好的程序项目转移到别的新电脑
上,后来发现一切准备好之后发现运行按钮的是灰色的如法启动项目。这里需要强调的是一点是这个是新装的idea所以你要确保你的配置和你之前的那台的配置是一样的,有些maven的配置是必须要配好才能运行的,所以看到这里先去检查一下你新版本的idea是不是已经配置好。
如果没有配置好那么接着往下看:
找到maven的lifecycle 再点击直接重新install,但是前提是你要添加了你项目的maven才可以哦!
但是如果你没有配置到基础的配置环境的话他会弹出来让你去设置maven的配置。如下:
经过这个配置之后基本上就可以运行了!
如果说还是不行的话,那你要看看你的 main
函数是不是存在问题,或者本身程序在拷贝过程中是有点问题的!如果还是不行的话,那我也没办法了。我在第一步就已经成功解决了!