首先我们要拿到从数据库查询到的图片路径:
public User selectByid(int id) {
User user = null;
con = DBUtil.getConnection();
try {String str = "where BooksID = ?";
ps = con.prepareStatement(selectBooks.concat(str));
ps.setInt(1, id);
rs = ps.executeQuery();
while (rs.next()) {
user = new User();
//数据库的imagers路径
user.setImagers(rs.getString("imagers"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBUtil.close(con, ps, rs);
}
return user; }
再通过Servlet转发到显示的页面,并且把查询出来的路径传输过去
public void updateBooks(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
String operation = request.getParameter("operation");
int booksid = Integer.parseInt(request.getParameter("booksid"));
//查询图片路径
User users = userService.selectByid(booksid);
//传值到页面
request.setAttribute("users", users);
request.getRequestDispatcher("/sumweb/lookBooks.jsp").forward(request, response);}
Jsp页面
//回填图片
var imgs = $("#imgs").val();
//使用正则替换我们需要匹配的地址
var iou = imgs.replace(/^.*[\\]/,"/upload/");
//再把地址添加到src里显示出来
$("#imgbook").attr('src',iou);
这里需要注意的是:我们数据库保存的路径是:以目录以“\”分隔开的,而Jsp页面的路径识别“\”或者“/”那么我们需要在conf的目录server.xml添加路径匹配,在标签中间添加:
<Context path="/upload" docBase="D:\Java\serveTomcat7\apache-tomcat-7.0.52\webapps\booksA\.\upload\" reloadable="true"></Context>
Jsp页面路径显示:
页面浏览本地图片:
var imgReaderI = new FileReader();//FileReader()接口:用于读取文件
//图片文件: 正则表达式过滤(此表达式是用来判断上传的文件是否是一张图片)
regexImageFilter = /^(?:image\/bmp|image\/png|image\/jpeg|image\/jpg)$/i;
//调用FileReader接口的onload方法,回调函数得到的evt是图片的URL链接
imgReaderI.onload = function (evt) {
//将数据结果赋值给image的src
$("#imgbook").attr('src', evt.target.result); }
$("#test1").change(function () {
var imgfFile = $("#test1").prop('files')[0];
if (!regexImageFilter.test(imgfFile.type)) {
layer.msg('选择的不是一个有效的图片文件', { icon: 0, offset: "100px" });}
imgReaderI.readAsDataURL(imgfFile);});
效果图: