栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基于jcifs.smb实现远程发送文件到服务器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基于jcifs.smb实现远程发送文件到服务器

本文实例为大家分享了java实现远程发送文件到服务器的具体代码,供大家参考,具体内容如下

1.依赖的相关jar包         jcifs-1.3.14.1.jar
2.创建SMB的声明

import java.io.BufferedInputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.UnknownHostException; 
 
import jcifs.smb.SmbException; 
import jcifs.smb.SmbFile; 
import jcifs.smb.SmbFileOutputStream; 
 
public class SmbUtil { 
  // 1. 声明属性 
  private String url = "smb://userName:password@192.168.2.153/mars/"; 
  private SmbFile smbFile = null; 
  private SmbFileOutputStream smbOut = null; 
  private static SmbUtil smbUtil = null; // 共享文件协议 
   
  private SmbUtil(String url) { 
    this.url = url; 
    this.init(); 
  } 
   
  // 2. 得到SmbUtil和连接的方法 
  public static synchronized SmbUtil getInstance(String url) { 
    if (smbUtil == null) 
      return new SmbUtil(url); 
    return smbUtil; 
  } 
 
   
  // 3.smbFile连接 
  public void init() { 
    try { 
      System.out.println("开始连接...url:" + this.url); 
      smbFile = new SmbFile(this.url); 
      smbFile.connect(); 
      System.out.println("连接成功...url:" + this.url); 
    } catch (MalformedURLException e) { 
      e.printStackTrace(); 
      System.out.print(e); 
    } catch (IOException e) { 
      e.printStackTrace(); 
      System.out.print(e); 
    } 
  } 
   
  // 4.上传文件到服务器 
  public int uploadFile(File file) { 
    int flag = -1; 
    BufferedInputStream bf = null; 
    try { 
      this.smbOut = new SmbFileOutputStream(this.url + "/" 
   + file.getName(), false); 
      bf = new BufferedInputStream(new FileInputStream(file)); 
      byte[] bt = new byte[8192]; 
      int n = bf.read(bt); 
      while (n != -1) { 
 this.smbOut.write(bt, 0, n); 
 this.smbOut.flush(); 
 n = bf.read(bt); 
      } 
      flag = 0; 
      System.out.println("文件传输结束..."); 
    } catch (SmbException e) { 
      e.printStackTrace(); 
      System.out.println(e); 
    } catch (MalformedURLException e) { 
      e.printStackTrace(); 
      System.out.println(e); 
    } catch (UnknownHostException e) { 
      e.printStackTrace(); 
      System.out.println("找不到主机...url:" + this.url); 
    } catch (IOException e) { 
      e.printStackTrace(); 
      System.out.println(e); 
    } finally { 
      try { 
 if (null != this.smbOut) 
   this.smbOut.close(); 
 if (null != bf) 
   bf.close(); 
      } catch (Exception e2) { 
 e2.printStackTrace(); 
      } 
    } 
 
    return flag; 
  } 
 
  // 5. 在main方法里面测试 
  public static void main(String[] args) { 
    // 服務器地址 格式為 smb://电脑用户名:电脑密码@电脑IP地址/IP共享的文件夹 
    String remoteUrl = "smb://wangqinghua:wqh123@192.168.2.153/mars/"; 
    String localFile = "F:/开关生产销售企业名录.xls"; // 本地要上传的文件 
    File file = new File(localFile); 
    SmbUtil smb = SmbUtil.getInstance(remoteUrl); 
    smb.uploadFile(file);// 上传文件 
  } 
} 

需要注意的事项:

以上是基于局域网,且上传文件的目录或者文件夹必须设置为共享模式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/142104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号