java上传图片的图片为啥在tomcat下,我想存在项目的upload下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java上传图片的图片为啥在tomcat下,我想存在项目的upload下相关的知识,希望对你有一定的参考价值。
java上传图片的图片为什么在tomcat下,我想存在项目的upload下,我想在获取的绝对地址就是tomcat下,
我用的CommonUpload方法
我是想放在项目里,不是tomcat下, 再一个我获得的是tomcat部署的目录,我怎么获取到项目的目录呢
追答你说的”项目目录“是指什么,在 Eclipse workspace 中的源码的目录 ?如果是这个源码的目录,那是不可能的,我们必须用参数来解决。
Java 中可以通过 System.getProperty("my.data.dir") 这种方式来读取从命令行 java.exe -Dmy.data.dir=C:/abc/data 这样设置的参数,这个时候我们就可以把eclipse 中源码位置当成参数传递给它。在tomcat 设置中(开始菜单》Apache Tomcat ?.0 》Configure Tomcat 中的 JVM 参数中加上 -Dupload.dir=D:/workspace/myapp/upload 这样的参数。
注意往数据库存路径和读取路径的时候,加上相应的真实路径,具体说不太清楚,自己试一下就明白了
<Context crossContext="true" docBase="/home/xxx/upload" path="/upload" reloadable="true"/>追问
可以细说一下吗,刚做这,具体技术好不明白
追答tomcat中的update每次重启数据库的时候,里面的东西都会被清空的,所以映射一个虚拟路径就可以了,就是上面说的那样,在tomcat服务器Service中的service,xml中配置那句话就可以了,原来有一个总结的,这两天U盘坏了,东西全丢了,没办法给你看了,你就按我说的试一试,在数据库中就单独存一个文件名就可以了,在前台页面读取的时候,可以在路径前加一个“/update”就可以了。
本回答被提问者采纳Java图片上传
最近闲来无事,就整理常用的功能,以下是项目中图片上传的功能,将图片上传到服务器tomcat下,数据库中存放相对路径,大家一起学习。
环境:eclipse jdk1.7 tomcat7 maven3.5
步骤:
@RequestMapping(params="upLoadPicture") @ResponseBody public String addFilemsgPic(MultipartFile file,HttpServletRequest request) throws Exception{ String path="../Manage_ssm/upLoadPicture"; //创建文件 File dir=new File(path); if(!dir.exists()){ dir.mkdirs(); } String username=(String) request.getSession().getAttribute("userName"); //返回原来在客户端的文件系统的文件名 String fileName=file.getOriginalFilename(); //username+后缀名 String img=username+fileName.substring(fileName.lastIndexOf("."));//zhao.jpg FileOutputStream imgOut=new FileOutputStream(new File(dir,img));//根据 dir 抽象路径名和 img 路径名字符串创建一个新 File 实例。 imgOut.write(file.getBytes());//返回一个字节数组文件的内容 imgOut.close(); Map<String, String> map=new HashMap<String, String>(); String rpath = path+"/"+img; map.put("rPath",rpath); JSONObject jsonObject = JSONObject.fromObject(map);//将json字符串转换为json对象 String r=jsonObject.toString(); String s=URLEncoder.encode(r, "utf-8");//加密 return s; }
@RequestMapping(params="pictureToDb") @ResponseBody public int pictureToDb(String src,HttpServletRequest request){ String newSrc = src.replace(" ", "+"); int flag=ConnOrcl.connToTable(newSrc,request); if(flag==1) return 1; else return 2; }
public class ConnOrcl { private static Connection conn; private static Statement stat; private static String driver = "oracle.jdbc.driver.OracleDriver"; private static int SUCCESS=1; private static int FILE=2; public static int connToTable(String file,HttpServletRequest request) { try { //数据库连接 Class.forName(driver); conn = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "GKBMFZXT", "GKBMFZXT"); stat = conn.createStatement(); String username=(String) request.getSession().getAttribute("userName"); String sql="update user_table set picture='"+file+"' where user_name='"+username+"'"; stat.execute(sql.toString()); return SUCCESS; } catch(ClassNotFoundException e) { e.printStackTrace(); } catch(SQLException e) { e.printStackTrace(); } finally { if(null != stat) { try { stat.close(); } catch (SQLException e) { e.printStackTrace(); } } if(null != conn) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } return FILE; } }
<script src="js/ajaxfileupload.js"></script> <script type="text/javascript"> function upload(){ var file="file"; var picElement=document.getElementById(file).value; var picFormat=picElement.substring(picElement.lastIndexOf('.')+1,picElement.length); if(picFormat!="jpg"){ alert("请选择jpg 格式的文件!"); return; } $.ajaxFileUpload({ url:"user.do?upLoadPicture", secureuri: false, fileElementId:file, dataType: 'JSON', success:function(data){ data=decodeURIComponent(data);//解码 var arr=JSON.parse(data);//JSON.parse() 方法解析一个JSON字符串 $("#fsrc").val(arr.rPath); $.post( "user.do?pictureToDb&src="+$("#fsrc").val(), function(data){ //data=decodeURIComponent(data); //var arr=JSON.parse(data); if(data==1){ alert("上传成功!"); }else{ alert("上传失败!"); } } ); }, error: function (){ alert("上传失败!当前时间为:"+new Date().toLocaleTimeString()); } }); }; function findFile(){ document.getElementById("file").click(); }
以上是关于java上传图片的图片为啥在tomcat下,我想存在项目的upload下的主要内容,如果未能解决你的问题,请参考以下文章