JavaWeb上传图片到服务器,存储到数据库,并在页面显示
生活随笔
收集整理的這篇文章主要介紹了
JavaWeb上传图片到服务器,存储到数据库,并在页面显示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JavaWeb上傳圖片到服務器,存儲到數據庫,并在頁面顯示
Servlet
@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//設置編碼req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=utf-8");boolean isMultipart = ServletFileUpload.isMultipartContent(req);//上傳到服務器的存放路徑String uploadFilePath = req.getSession().getServletContext().getRealPath("upload/");//判斷上傳的數據是不是多段數據if (isMultipart) {//創建工廠實現類DiskFileItemFactory factory = new DiskFileItemFactory();//創建臨時文件目錄File tempPath = new File("E://abc");//設置臨時文件存放的路徑factory.setRepository(tempPath);//設置緩沖區大小factory.setSizeThreshold(10240);//用于解析上傳數據的工具類ServletFileUploadServletFileUpload upload = new ServletFileUpload(factory);//設置單個文件最大值upload.setSizeMax(61440000);//初始化為空String username = null;String phone = null;String sex = null;String name = null;String place = null;String hometown = null;String headimgpath = null;//調用解析方法try {//定義一個集合 接受上傳的所有請求參數List<FileItem> list = upload.parseRequest(req);//循環判斷,每一個表單項,是普通類型,還是上傳的文件for (FileItem fileItem : list) {if (fileItem.isFormField()) {//普通表單項String filedName = fileItem.getFieldName();if (filedName.equals("username")) {username = fileItem.getString("UTF-8");} else if (filedName.equals("phone")) {phone = fileItem.getString("UTF-8");} else if (filedName.equals("truename")) {name = fileItem.getString("UTF-8");} else if (filedName.equals("sex")) {sex = fileItem.getString("UTF-8");} else if (filedName.equals("place")) {place = fileItem.getString("UTF-8");} else if (filedName.equals("hometown")) {hometown = fileItem.getString("UTF-8");}} else {//上傳的圖片,獲取到文件名headimgpath = fileItem.getName();if (headimgpath != null && !headimgpath.equals("")) {String str = headimgpath.substring(headimgpath.lastIndexOf(".") + 1);//判斷圖片類型if ("png".equals(str) || "jpg".equals(str)) {//保存到服務器File saveFile = new File(uploadFilePath, headimgpath);fileItem.write(saveFile);out.println("圖片上傳成功");} else {return;}}}}} catch (Exception e) {e.printStackTrace();}//拿到LoginServlet中保存到session中的已經登錄的userUser user = (User) req.getSession().getAttribute("user");//創建UserInfo對象UserInfo userInfo = new UserInfo(null, username, phone, name, sex, place, hometown, headimgpath);// 調用 userService的方法處理業務boolean flag = userService.UpdateUserInfo(userInfo, user);if(flag){//req.setAttribute("AddSuccess","success");req.getRequestDispatcher("QueryStoreTypeShowServlet").forward(req,resp);}else{// req.setAttribute("AddError","error");req.getRequestDispatcher("updateinfo.jsp").forward(req,resp);}}}將圖片路徑存放到數據庫
serviceImpl:
@Overridepublic boolean UpdateUserInfo(UserInfo userinfo, User user) {return userDao.UpdateUserInfo(userinfo,user);}service層:
/*** 修改個人信息*/public boolean UpdateUserInfo(UserInfo userinfo, User user);dao層:
/*** 修改賬戶個人信息*/public boolean UpdateUserInfo(UserInfo userinfo,User user);daoImpl:
@Overridepublic boolean UpdateUserInfo(UserInfo userinfo,User user) {QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());String sql = "update userinfo set username=?,phone=?,name=?,sex=?,place=?,hometown=?,headimgpath=? where usernum =(select userid from t_user where email=?)";Object[] objects = {userinfo.getUsername(),userinfo.getPhone(),userinfo.getName(),userinfo.getSex(),userinfo.getPlace(),userinfo.getHometown(),userinfo.getHeadimgpath(),user.getEmail()};try {int count = runner.update(sql,objects);if(count>0){return true;}else{return false;}} catch (SQLException e) {e.printStackTrace();return false;}}前端顯示頭像
<span class="item_name" style="width:120px;">頭 像</span><img src="upload/${requestScope.userInfo.headimgpath}"width="60" height="60" name="headimg">總結
以上是生活随笔為你收集整理的JavaWeb上传图片到服务器,存储到数据库,并在页面显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaWeb中使用session保持用
- 下一篇: SSL/TLS协议详解