请问在一个项目中,将上传的图片放在另一个服务器的的资源目录下,文件路径放在数据库表字段中。请问下如何实现 ?
给个思路或代码?

解决方案 »

  1.   

    数据库字段:文件名(只是显示),文件路径(ip+路径+重命名文件),文件后缀(后缀不变)==========================================================
    文件路径可以按天放08-06-13,08-06-14
    这样可以每天备份文件!
    另一个服务器的ip最好写在配置文件中,好维护()
      

  2.   

    要用java.net.*包的类以字节流进行远程传输,在目标服务器建个Servlet接收,具体比较复杂,你可以试试..
      

  3.   

    可能是我的问题没提清楚,我是想问如何实现跨服务器上传文件。
    比如,我的资源服务器上,ip是xxx.xxx.xxx.xxx,我的web服务器ip是zzz.zzz.zzz.zzz
    我从配置文件中得到资源服务器的ip,我如何才能通过这个ip获得服务器的路径,把文件保存到这个服务器
      

  4.   

    我个人认为应该需要通过socket来传输啊,你可以启动一个线程来专门传输文件啊 
      

  5.   

    使用commons-fileupload-1.0上传组件使用实例. 做个才考
    上传页面;up.jsp<%@ page contentType="text/html; charset=gb2312" language="Java" import="Java.sql.*" errorPage="" %><html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head><body>
    <form action="up1.jsp" method="post" enctype="multipart/form-data" name="form1">
      <input name="thisfile" type="file" id="thisfile">
      <input name="user" type="text" id="user" size="10">
      <input type="submit" name="Submit" value="Submit">
    </form>
    </body>
    </html>
    后端处理页面up1.jsp<%@ page contentType="text/html; charset=gb2312" language="Java" import="Java.sql.*" errorPage="" %>
    <%@ page import="org.apache.commons.fileupload.*" %>
    <%@ page import="Java.util.*" %>
    <%@ page import="Java.io.*" %>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head><body>
    <% 
       try{
            String dir=request.getRealPath(".");
            DiskFileUpload fu = new DiskFileUpload();
            
            fu.setHeaderEncoding("UTF-8");          //注意如果页面是GBK 不用设置,如果页面是UTF-8那一定要设置
                                                    //否则会出现乱码
            
            fu.setSizeMax(4194304);                 //设置文件大小.        fu.setSizeThreshold(4096);              //设置缓冲大小.        fu.setRepositoryPath(dir+"/test");      //设置临时目录.
     List fileItems = fu.parseRequest(request);   //解析请求,返回一个集合.
            
            Iterator i = fileItems.iterator();        while(i.hasNext()) 
         {
         
                FileItem fi = (FileItem)i.next();
       
        if(fi.isFormField())                        //这是用来确定是否为文件属性, 
         {   String fieldName = fi.getFieldName();     //这里取得表单名
       String fieldvalue=fi.getString();         //这里取得表单值   out.print("<br>");
       out.print("name:"+fieldName);
       out.print("value:"+fieldvalue);
                       }
         else                                           //这里开始外理文件
         {
                           String fileName = fi.getName();            // 返回文件名包括客户机路径
                           if(fileName!=null) out.print(fileName);
            out.print("<br>"+fi.getFieldName());  // 打印文件表单名
              
                                 fi.write(new File(dir+"/test/a.jpg"));     // 写文件到服务器.
          }
        }
                }
       }
      catch(Exception e)
       {} %></body>
    </html>