日期:2014-05-19  浏览次数:20653 次

java上传图片到另一台服务器上,如何解决?
需求:
项目部署于A服务器上,访问upload.jsp,上传图片.jpg。。。。。
后台接收处理,将图片存放于B服务器上。图片存放位置是根据程序不定的存放于不同的自动生成的文件夹

目前困惑:怎么获取到远程服务器地址,使之成为我图片上传的路径

现在的思路,有人介绍用jcifs-1.1.11.jar,这个可以在远程服务器上创建文件夹
实现代码:
Java code

try{
    SmbFile smbFile2=new SmbFile("smb://administrator:mypupa95@10.2.0.95/e$/bb");
    smbFile2.mkdirs();
        in.close();
     }catch(Exception e){
        e.printStackTrace();
     }


以前用的上传代码是这样的:
Java code

 public String upload(String dir, FormFile formFile) throws Exception {
         Date date = new Date();
        //取欲上传的文件的名字和长度
        String fname = formFile.getFileName();
        //将上传时间加入文件名
        int i = fname.indexOf(".");
        String name = String.valueOf(date.getTime());
        String type = fname.substring(i + 1);
        fname = name + "." + type;
        InputStream in = formFile.getInputStream();    //获得上传文件的InputStream
        File uploadFile = new File(dir);   //创建把上传数据写到目标文件的对象
        if (!uploadFile.exists() || uploadFile == null) {  //判断指定路径是否存在,不存在则创建路径
            uploadFile.mkdirs();
        }
        String path = uploadFile.getPath() + "/" + fname;
        FileOutputStream fout = new FileOutputStream(path);
        System.out.println("fout:"+fout);
        byte buffer[] = new byte[8192];
        int count = 0;
        //开始向上传路径中刚建立的文件写入数据,每次写8K字节
        while((count = in.read(buffer)) > 0){
            fout.write(buffer, 0, count);
        }
        in.close();
        fout.close();
        formFile.destroy();    //上传成功后销毁当前上传文件的资源
        return fname;   //返回图片名称
    }



不知道该怎么结合了,希望大家能指点一下。。或者如果有其他的办法也可以。。谢谢

------解决方案--------------------
文件上传可以使用apache的开源jar包upload.jar,网上很多例子,可以google下。
另外,存到服务器上,如果想从服务器上获取文件,只需要能根据文件名称找到文件在服务器上的绝对路径就可以了,然后通过File读取文件流,写给客户端,那么在浏览器上会自动提示您去保存文件。
------解决方案--------------------
两种方式
1.使用共享网络磁盘的形式,在当前的服务器简历一个另一台服务器的网络磁盘,直接操作读写这个网络磁盘即可
2.使用FTP操作另外这台服务器
------解决方案--------------------
学习的。。。。
------解决方案--------------------
http://java.chinaitlab.com/net/803563_2.html
------解决方案--------------------
学习一下..