用JAVA上传图片到服务器上,奇怪的是只能在本地上看到,别的电脑上看不到。
AdlibraryImageForm myform = (AdlibraryImageForm)form;
AdlibraryImage adlibraryImage = myform.getItem();
PrintWriter outs = response.getWriter();
String path = request.getContextPath();

//获取文件的路径
FormFile file = myform.getUploadFile();
//取得绝对的地址
String dir = request.getSession().getServletContext().getRealPath("/Images_guanggao");

try{
if(file!=null || !file.equals(""))
{
//获取文件名
String filerealName = file.getFileName();
String lastname=filerealName.substring(filerealName.lastIndexOf("."), filerealName.length());
String fileName = System.currentTimeMillis() + lastname;////重新命名
InputStream in = file.getInputStream();
OutputStream out = new FileOutputStream(dir+"\\"+fileName);
int byteRead = 0;
byte [] buffer = new byte[8192];
while((byteRead=in.read(buffer,0,8192))!=-1)
{
out.write(buffer,0, byteRead);
}
out.close();
in.close();
}
}catch(FileNotFoundException e)
{
//捕获异常,但不处理
}

解决方案 »

  1.   

    你是怎么查看的,如果是通过jsp页面查看的,要看你的jsp中img标签使用的图片地址是否是相当地址,如果是绝对地址则只能在本机看。
      

  2.   

    jsp 代码:
    <%
    String path = request.getContextPath();
    %>个人标志图: <img src="<%=path%>/bUpload/${businessUserAll.logoImage}" width="182" height="68" name="logImage" id="logImage2"/> </div>
      

  3.   

    显示图片的URL加一个刷新参数如:
    src="<%=path%>/bUpload/${businessUserAll.logoImage}?a=" + System.currentTimeMillis()
      

  4.   

    图片应该上传到 tomcat webapp的项目中的指定目录下,别的电脑才可以访问的!楼主可以试着 看一下,你的tomcat下是否有相关图片
      

  5.   

    你的代码错误太明显了,,,
      String dir = request.getSession().getServletContext().getRealPath("/Images_guanggao");
    显示的时候却是<img src="<%=path%>/bUpload/${businessUserAll.logoImage}" width="182" height="68" name="logImage" id="logImage2"/>两个地方的 文件夹根本都不相同,,  你的action 里面写的文件夹是  Images_guanggao ,实际上是把图片上传到  那个文件夹去了,,你JSP页面却是写的  bUpload 文件夹,,
    你把 Action里面 改成 :
      String dir = request.getSession().getServletContext().getRealPath("/bUpload");
    这样才OK了,,
      

  6.   

    问题补充 还有这一句  也有点问题OutputStream out = new FileOutputStream(dir+"\\"+fileName);这句改成OutputStream out = new FileOutputStream(dir+"/"+fileName);
      

  7.   

    //获取文件的路径
     FormFile file = myform.getUploadFile();这个注释有问题吧查下API,好像除了路径 可以得到很多东西
      

  8.   

    要设置Response的MIME TYPE输出的
      

  9.   

      //取得绝对的地址
            String dir = request.getSession().getServletContext().getRealPath("/Images_guanggao");就是啊!  你这里存在是 Images_guanggao文件夹
       
    <img src="<%=path%>/bUpload/${businessUserAll.logoImage}" width="182" height="68" name="logImage" id="logImage2"/> </div>这里又是bUpload
       一般的在存入数据库的时候,把你的文件夹的名字都存入数据库。
         前台直接
    <img src="<%=path%>/${businessUserAll.logoImage}" width="182" height="68" name="logImage" id="logImage2"/> </div>这样取。灵活性大于你写的那种!