String dir = request.getSession().getServletContext().getRealPath("/pic"); //上传的图片存放位置下面是我打印的路径:
获取项目文件路径:E:\学习的安装程序\严重\JAVA安装\apache-tomcat-6.0.20\webapps\Relax\pic   现在我有一个疑问,当我将这个项目发布到网上之后,也会有这种路径出现吗??我很好奇哦。。我这样的存储方式有没有问题呢??希望大家给点更简便的方法。。还有个问题是:
在显示图片的时候,怎么自动把图片缩小或放大到指定格式大小呢??最后一个问题:
fckeditor上传图片之后,不仅预览不起效果,而且也显示不出来。。怎么回事呢??谢谢大家

解决方案 »

  1.   

    当我将这个项目发布到网上之后,也会有这种路径出现吗?
    铁定不会啦,到时候这个图片的位置,用  
    String path = getServletContext().getRealPath("/") + "WEB-INF/pic/"+fileName; 就可以了。图片文件夹存放在WEB-INF目录下。
    自动缩放我不知道,感觉缩略图应该有对应的小图片吧。
      

  2.   

    不是很明白呢?
    String path = getServletContext().getRealPath("/") + "WEB-INF/pic/"+fileName;
    这句代码是在存储的时候用呢还是取的时候用呢??
      

  3.   

    额、、没人呀??帮我想想嘛也就是说,如果我买了一个jsp空间,将写的代码发布上去,那我写的图片上传的地址代码是否正确呢??是否会找到对应的jsp空间的虚拟路径呢??
      

  4.   

    从context可以得到绝对路径的 看你怎么设计的  
      

  5.   

    不同的机器,这个路径是不一样的。
    看你配置与tomcat服务器安装的路径了。
      

  6.   

    发布到服务器上的时候,要给服务器做下虚拟目录的映射,映射到你存放图片的目录,比如你的图片放在D:\IMAGES下面,TOMCAT 里可以这样设置:
    首先找到TOMCATHOME\conf下的server.xml,在<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    </Host>节点中加入<Context path="/images" docBase="d:\images" debug="0" reloadable="true" crossContext="true"/>。假设你的网站地址为http://localhost:8080,那么通过以上配置,就可以通过URL:http://localhost:8080/images/xx.jpg来访问你存放在D:\IMAGES下的图片啦
      

  7.   


    额。。
    没懂你们的意思呢。。难道说我用
    String dir = request.getSession().getServletContext().getRealPath("/pic");  这个方式来存图片(这个存的是tomcat虚拟路径)
    在取图片的时候用${pageContext.request.contextPath }/pic/${list3.pic
    这个方式来取图片,在本地测试的时候正常。。按照前几位朋友的说法,当我把程序放在买来的jsp空间中,还要自己再配置一次??具体点是怎样配置呢??
      

  8.   

    上传的话网上有很多代码可以参考。
    一般情况下的做法是:
    用户选择一个文件(图片)上传的时候,会在tomcat里生成一个临时文件,例如:E:\学习的安装程序\严重\JAVA安装\apache-tomcat-6.0.20\webapps\Relax\pic   
    然后后台进行操作,把这个临时文件复制到一个绝对文件路径下,例如:E:\学习的安装程序\pic 
    这时候需要把  E:\学习的安装程序\pic 这个路径跟一些文件相关的信息保存到数据库中,方便程序读取。读取的时候,根据从数据库中读取到的 E:\学习的安装程序\pic 路径,把文件用流的方式发送到页面,在页面上显示。显示的大小直接用html标签就能解决了。
      

  9.   

    再问个问题
    SQL2005的数据库,我怎么把自己建立的表分离出来?
    需求是分离出来的是T-sql语句。。
    谢谢
      

  10.   

    SQL2005的数据库,我怎么把自己建立的表分离出来?sql2005可以自己建库。你把自己建的表放在自己建的库里不就行了?
    说实话,我不知道怎么去复制虚拟路径下的东西到绝对路径中。。
    复制虚拟路径下的东西到绝对路径中 这是java基础部分的内容。
    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(uploadify));
        int result = -1;
      
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFileName));
        while((result = bis.read()) != -1){//这里非要用到result = bis.read(),这样才能保证bis.read()不停的读。
        bos.write(result);
        }
        bos.flush();
        bis.close();
        bos.close();
      

  11.   

    nicholasbobo
    你太有才了,谢谢啊!