博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java web项目 上传图片保存到数据库,并且查看图片,(从eclipse上移动到tomact服务器上,之路径更改,包括显示图片和导出excel)...
阅读量:4346 次
发布时间:2019-06-07

本文共 6093 字,大约阅读时间需要 20 分钟。

//项目做完之后,在本机电脑运行完全正常,上传图片,显示图片,导出excel,读取excel等功能,没有任何问题,但是,当打成war包放到服务器上时,这些功能全部不能正常使用。

最大的原因就是,本机测试跟服务器上的路径发生了变化。

记录一下,上传图片和显示图片的代码

1.前端页面:

2:后台servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        log.info("上传维修图片附件的servlet");        request.setCharacterEncoding("utf-8");          response.setContentType("text/html;charset=utf-8");                 String path = request.getSession().getServletContext().getRealPath(                  "/upload/weixiuimg");                File filemulu =new File(path);          //如果文件夹不存在则创建          if  (!filemulu .exists())            {                 System.out.println("//不存在");            filemulu .mkdir();          } else         {            System.out.println("//目录存在");        }          log.info("路径:"+path);        Map
map = Upload.upload(request, 1024 * 1024 * 10, path); String file= map.get("file"); // 名称 // String newFile = map.get("newFile");// 地址 MuJUService mjService = new MuJUService(); //System.out.println(map.get("type")); boolean flag=mjService.uploadImg("upload/weixiuimg/"+file,map.get("wx_id"));//调用方法,存到数据库 HttpSession session=request.getSession(); if (flag) { log.info("图片上传成功"); session.setAttribute("flag", "上传成功"); }else { log.info("图片上传失败"); session.setAttribute("flag", "上传失败"); }

3.upload类

 

public static Map
upload(HttpServletRequest request, int maxSize, String path) { //以map形式保存数据 key对应保存的是获取界面上的name名称 value保存的是获取界面上的name对应的值 Map
map = new HashMap
(); Part part = null; try { MultipartParser mrequest = new MultipartParser(request, maxSize); mrequest.setEncoding("utf-8"); //遍历所有的part组 while ((part = mrequest.readNextPart()) != null) { if (part.isFile()) { //判断是否是文件 FilePart filepart = (FilePart) part;//转化成文件组 String fileName = filepart.getFileName();//得到文件名 if (fileName != null && fileName.length() > 0) { // 取得扩展名 String fileExtName = fileName.substring( fileName.lastIndexOf(".") + 1).toLowerCase(); // 只上传图片 //判断图片上传的格式是否符合 后缀名是否有效 if (fileExtName.equalsIgnoreCase("jpeg") || fileExtName.equalsIgnoreCase("png")|| fileExtName.equalsIgnoreCase("jpg") || fileExtName.equalsIgnoreCase("gif") || fileExtName.equalsIgnoreCase("ico") || fileExtName.equalsIgnoreCase("bmp") || fileExtName.equalsIgnoreCase("flv") || fileExtName.equalsIgnoreCase("mp4") || fileExtName.equalsIgnoreCase("mp3")) { /*String newFileName = new Date().getTime() + "."+ fileExtName;//重新改文件名 文件名+扩展名 */ String newFileName =new Date().getTime() +fileName;//不改图片名字 String newPath = path + "/" + newFileName; //文件处理文件上传的路径 File newFile = new File(newPath); filepart.writeTo(newFile); //将文件真正写入到对应的文件夹中 //filepart.getName() 得到 request 要接收的参数的名字 map.put(filepart.getName(), newFileName);//把文件信息保存到map中 map.put("newFile", newFile.toString()); } else { map.put("geshi", "geshi"); continue; }// 说明上传的不是图片 } else { map.put("yes","yes"); continue; // 说明没有选择上传图片 } } else if (part.isParam()) { //判断是否是参数 ParamPart paramPart = (ParamPart) part; map.put(paramPart.getName(), paramPart.getStringValue()); } } } catch (IOException e) { e.printStackTrace(); } return map; }

 

4.显示图片,前端  jquery----弹框bootstrap,模态框传值

         ////request.getScheme()得到的:http:loaclhost:8888/ 在eclipse中测试的时候可能只要得到 String path =request.getContextPath();---/muju_pro(项目名),在拼接上数据库中图片的url就可以取到了, 但是在服务器上必须是Http:10.1.10.114:8888.。。。。这样的路径。 <%  String path =request.getContextPath();                String realpath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";                %>                                 //绑定模态框展示的方法                 $('#portrait1').on('show.bs.modal', function (event) {                      var button = $(event.relatedTarget) // 触发事件的按钮                      var recipient = button.data('whatever') // 解析出whatever内容                      var modal = $(this)  //获得模态框本身                    //更改将title的text                //  alert("C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/muju_pro/"+recipient);                   /*  modal.find('.modal-body img').attr("src",recipient);   */                    modal.find('.modal-body img').attr("src","<%=realpath%>/"+recipient);                                      })

html

 

转载于:https://www.cnblogs.com/stepbystepwhx/p/7782782.html

你可能感兴趣的文章
安卓开发环境搭建
查看>>
杭电2069
查看>>
grails
查看>>
移动Web开发规范
查看>>
Singly linked list algorithm implemented by Java
查看>>
金币阵列问题
查看>>
bzoj4318OSU &tyvj1952 Easy
查看>>
jmeter的JVM参数设置
查看>>
POJ1789 Truck History【最小生成树】【终于AC了】
查看>>
python基础09_文件操作
查看>>
mvn install selenium依赖包
查看>>
关于SQL的相关笔记【长期更新,只发一帖】
查看>>
linux awk命令详解
查看>>
android:id="@+id/button1" 与 android:id="@id/button1" 区别 @string
查看>>
手把手玩转win8开发系列课程(11)
查看>>
Linux Namespace : User
查看>>
交换两个整形变量的数值
查看>>
Linux----常用操作
查看>>
sequence
查看>>
Delphi错误:Stack overflow的解决方法
查看>>