两个问题:有一个项目,需要上传图片并立即显示出来。
1.用户上传的头像能不能放在tomcat下?我发现项目重新部署后,用户上传的头像都清空了。
2.因为放在tomcat下不行,所以我想将用户上传的头像放在一个绝对路径下,但是有个问题是,前端怎么通过jsp获取这个绝对路径下的图片呢?给讲讲csdn怎么处理头像上传的也行。

解决方案 »

  1.   

    tomcat是不允许你这么干的,为什么不把头像放在数据库里?????
      

  2.   

    有人说用虚拟路径,这样的:这样可以解决吗?
    在 server.xml 中加上一行:
     
      <Context path="/news/upload" docBase="d:/upload" />
     
     以后就可以使用 http://localhost:8080/news/upload/20091111/xxx.doc 访问了。
     
      

  3.   

    那就把路径存起来,这样你在页面处理也就方便了,我觉得不用服务器的那种方式,而是ftp
      

  4.   

    搞一个默认的FTP账号,上传图片的时候先把名称加密,然后把图片上传到FTP上面某个路径下,同时图片名称入库。
    在查看的时候查询出这个对象,根据入库的名称,再把图片从FTP上下载回来。
      

  5.   

    jsp文件头引入这样的一个jar包,包里引用的类如下:<jsp:useBean id="ymaitak" scope="page" class="com.jspsmart.upload.SmartUpload"/>并在jsp文件中写如下代码:
     <%
          int count=0;
          ymaitak.initialize(pageContext);
          ymaitak.setAllowedFilesList("txt,rmvb,avi,mp3");
          ymaitak.setDeniedFilesList("exe,zip,jar,rar");
          ymaitak.setMaxFileSize(50000);
          ymaitak.upload();
          try{
               for(int i=0;i<ymaitak.getFiles().getCount(); i++)
               {
                  File gao=ymaitak.getFiles().getFile(i);
                  
                  if(!gao.isMissing())
                  {
                  gao.saveAs("C:/Users/User/tomcat/webapps/upload/"+gao.getFileName());
                   
           %>
    此时saveAs(),这个方法中写绝对路径即可。。
      

  6.   

    如果你是oracle数据库,你可以把图像转换成二进制放在数据库里,然后取出来的时候用File,然后I/O流把他放到绝对路径下