1.将图片上传到tomcat下
2.将相对路径存放到数据库中
1 @RequestMapping(params="upLoadPicture") 2 @ResponseBody 3 public String addFilemsgPic(MultipartFile file,HttpServletRequest request) throws Exception{ 4 5 String path="../Manage_ssm/upLoadPicture"; 6 7 //创建文件 8 File dir=new File(path); 9 if(!dir.exists()){ 10 dir.mkdirs(); 11 } 12 13 String username=(String) request.getSession().getAttribute("userName"); 14 //返回原来在客户端的文件系统的文件名 15 String fileName=file.getOriginalFilename(); 16 //username+后缀名 17 18 String img=username+fileName.substring(fileName.lastIndexOf("."));//zhao.jpg 19 FileOutputStream imgOut=new FileOutputStream(new File(dir,img));//根据 dir 抽象路径名和 img 路径名字符串创建一个新 File 实例。 20 21 imgOut.write(file.getBytes());//返回一个字节数组文件的内容 22 imgOut.close(); 23 Map<String, String> map=new HashMap<String, String>(); 24 25 String rpath = path+"/"+img; 26 map.put("rPath",rpath); 27 JSONObject jsonObject = JSONObject.fromObject(map);//将json字符串转换为json对象 28 String r=jsonObject.toString(); 29 String s=URLEncoder.encode(r, "utf-8");//加密 30 return s; 31 }
1 @RequestMapping(params="pictureToDb") 2 @ResponseBody 3 public int pictureToDb(String src,HttpServletRequest request){ 4 5 6 String newSrc = src.replace(" ", "+"); 7 int flag=ConnOrcl.connToTable(newSrc,request); 8 if(flag==1) 9 return 1; 10 else 11 return 2; 12 }
1 public class ConnOrcl { 2 3 private static Connection conn; 4 private static Statement stat; 5 private static String driver = "oracle.jdbc.driver.OracleDriver"; 6 private static int SUCCESS=1; 7 private static int FILE=2; 8 public static int connToTable(String file,HttpServletRequest request) 9 { 10 try 11 { 12 //数据库连接 13 Class.forName(driver); 14 conn = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "GKBMFZXT", "GKBMFZXT"); 15 stat = conn.createStatement(); 16 17 String username=(String) request.getSession().getAttribute("userName"); 18 String sql="update user_table set picture='"+file+"' where user_name='"+username+"'"; 19 stat.execute(sql.toString()); 20 21 return SUCCESS; 22 } 23 catch(ClassNotFoundException e) 24 { 25 e.printStackTrace(); 26 } 27 catch(SQLException e) 28 { 29 e.printStackTrace(); 30 } 31 finally 32 { 33 if(null != stat) 34 { 35 try 36 { 37 stat.close(); 38 } 39 catch (SQLException e) 40 { 41 e.printStackTrace(); 42 } 43 } 44 if(null != conn) 45 { 46 try 47 { 48 conn.close(); 49 } 50 catch (SQLException e) 51 { 52 e.printStackTrace(); 53 } 54 } 55 } 56 return FILE; 57 } 58 59 }
1 <script src="js/ajaxfileupload.js"></script> 2 <script type="text/javascript"> 3 function upload(){ 4 5 var file="file"; 6 var picElement=document.getElementById(file).value; 7 8 var picFormat=picElement.substring(picElement.lastIndexOf('.')+1,picElement.length); 9 if(picFormat!="jpg"){ 10 alert("请选择jpg 格式的文件!"); 11 return; 12 } 13 14 $.ajaxFileUpload({ 15 url:"user.do?upLoadPicture", 16 secureuri: false, 17 fileElementId:file, 18 dataType: 'JSON', 19 success:function(data){ 20 data=decodeURIComponent(data);//解码 21 var arr=JSON.parse(data);//JSON.parse() 方法解析一个JSON字符串 22 $("#fsrc").val(arr.rPath); 23 $.post( 24 "user.do?pictureToDb&src="+$("#fsrc").val(), 25 function(data){ 26 //data=decodeURIComponent(data); 27 //var arr=JSON.parse(data); 28 if(data==1){ 29 alert("上传成功!"); 30 }else{ 31 alert("上传失败!"); 32 } 33 34 } 35 ); 36 }, 37 error: function (){ 38 alert("上传失败!当前时间为:"+new Date().toLocaleTimeString()); 39 40 } 41 }); 42 }; 43 44 function findFile(){ 45 document.getElementById("file").click(); 46 }