图片无法加载
if(session.getAttribute("user")!=null){ User user = (User)session.getAttribute("user"); System.out.println(user.getPath()); int idx = user.getPath().lastIndexOf("\\"); String fileName = user.getPath().substring(idx+1); System.out.println(fileName);
path和fileName两个变量都是正确输出的,显然是路径名有问题,照着老师的写法是
<td align="center"><img src="/reg_login/upload/<%=fileName%>" /></td>
我也是这么写的,但是加载失败,显然是路径名称的问题,因为我用的是MAC的Idea写的代码
所以请教MAC的IDEA怎么配置这个路径?
正在回答
我的意思是在对user对象进行封装数据时,将uuidFileName封装到user类中的path属性中,你也可以在User类中定义一个FileName属性也可以,将uuidFileName封装到user对象中,两种方法皆可以。
然后在jsp页面中使用下面的代码来获取图片,这里的user.getPath就是图片的唯一名称。祝学习愉快~
<td align="center"><img src="<%=basepath%>/upload/<%=user.getPath()%>" /></td>
修改意见:
1、建议你使用 url = path+File.separator+uuidFileName;来存储图片,因为mac本与windows存储的路径不形同,这样能确保图片存在对应的mac系统的路径下。
2、可以看出,使用了url = path+File.separator+uuidFileName之后,在success.jsp页面中fileName的值也发生了改变,所以截取fileName的代码就不可以使用了(可以直接删除),建议你直接将uuidFileName存储在User类中的path中,此时的path值也就是uuidFileName,这样使用<%=basePath%>/upload/<User.getPath>,就可以获取图片了。如果有不理解的地方,可以继续提问,祝学习愉快~
图片还是没有加载,如图所示
首先路径和文件名都没有问题
我也把代码改成了
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path; %>
<td align="center"><img src="<%=basePath%>/upload/<%=fileName%>" /></td>
附一张火狐浏览器的截图,路径确实输出了,但是报的错误是不能加载图片
建议你使用<%=basePath%>试试,通过访问网页的全路径来访问项目资源,可以在页面中添加如下代码,这中访问资源的适配性高,可以避免资源路径出现错误,
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path; %>
然后使用如下代码获取图片,如果还有问题,可以再次提问,祝学习愉快~
<td align="center"><img src="<%=basePath%>/upload/<%=fileName%>" /></td>
- 参与学习 716 人
- 提交作业 185 份
- 解答问题 1363 个
会Java?懂前端基础?想学后台开发?那么,赶快来学习《Java Web入门》路径吧。本路径主要介绍Java Web的基础知识,并配有大量案例,定会让你收获多多!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星