问题描述
1.ssh框架工程的发布目录已经改成tomcat下目录在该目录下建了一个放图片的文件夹tomcat重启后此文件夹消失了怎么办?2.我用ajax读取数据库中存的图片的地址,然后更改src的值,不能显示.数据库里到底应该存什么路径,是文件的的绝对路径还是相对路径?3.有没有别的存图片并且显示的方法?action代码Stringtea_number=(String)request.getSession().getAttribute("tea_number");Stringtype=getUploadFileName().substring(getUploadFileName().lastIndexOf(".")).toLowerCase();Stringrealpath=request.getSession().getServletContext().getRealPath("\images\"+tea_number+type);Stringpath="/images/"+tea_number+type;FileInputStreamfis=newFileInputStream(getUpload());FileOutputStreamfos=newFileOutputStream(realpath);intlen;byte[]buf=newbyte[1024];while((len=fis.read(buf))!=-1){fos.write(buf,0,len);}fos.close();fis.close();Teachert=newTeacher();t.setTea_number(tea_number);t=teacherService.findSingleTeacher(t);t.setTea_icon(path);teacherService.updateTeacher(t);
解决方案
解决方案二:
如果你愿意,你可以吧图片存成二进制数据。。我一般存储是绝对路径,相对于工程文件夹的话我觉得很别扭。
解决方案三:
引用1楼AA5279AA的回复:
如果你愿意,你可以吧图片存成二进制数据。。我一般存储是绝对路径,相对于工程文件夹的话我觉得很别扭。
请问存成二进制文件之后怎么读取呢
解决方案四:
读取二进制例子/***获取保安人员相片*@paramid*@paramresponse*@throwsException*/@RequestMapping("/getpicuture")publicvoidgetPicture(@RequestParam("tableName")StringtableName,@RequestParam("keyFieldName")StringkeyFieldName,@RequestParam("keyFieldValue")StringkeyFieldValue,@RequestParam("imageFieldName")StringimageFieldName,@RequestParam("time")longtime,HttpServletResponseresponse,HttpServletRequestrequest)throwsException{Connectionconn=null;PreparedStatementps=null;ResultSetrs=null;byte[]by=null;try{conn=beanFactoryDataSourceLookup.getDataSource("dataSource").getConnection();Stringsql="select"+imageFieldName+"from"+tableName+"twheret."+keyFieldName+"=?";ps=conn.prepareStatement(sql);ps.setString(1,keyFieldValue);rs=ps.executeQuery();if(rs.next()){Blobbo=rs.getBlob(1);by=newbyte[(int)bo.length()];InputStreamin=bo.getBinaryStream();in.read(by);ServletOutputStreamout=response.getOutputStream();in.close();out.write(by);out.flush();out.close();in.close();}}catch(Exceptione){//e.printStackTrace();}finally{conn.close();}}
解决方案五:
绝对路径算了,路径名在数据库或者配置文件中读取