精华内容
下载资源
问答
  • 添加依赖 // ... compile group: 'jcifs', name: 'jcifs', version: '1.3.17' 代码示例 package com.xl; import jcifs.smb.SmbFile; import jcifs.smb.SmbFileInputStream...

    添加依赖

    // https://mvnrepository.com/artifact/jcifs/jcifs
        compile group: 'jcifs', name: 'jcifs', version: '1.3.17'
    

    代码示例

    package com.xl;
    
    import jcifs.smb.SmbFile;
    import jcifs.smb.SmbFileInputStream;
    import jcifs.smb.SmbFileOutputStream;
    
    import java.io.*;
    
    /**
     * 这个工具类提供了从Samba服务器上下载文件到本地目录,以及上传本地文件到Samba服务器指定目录的方法
     */
    public class SambaTransferFile {
    
        public static void main(String[] args) {
            uploadFileToSamba();
            //downLoadFileFromSamba();
        }
    
        //上传本地文件到Samba服务器指定目录
        public static void uploadFileToSamba() {
            //smbFileUrl路径smb://smbuser:1234@192.168.0.101/smb,这样会报错,因为smb是共享目录,若不是共享目录则不会报错
            //String smbFileUrl = "smb://smb用户名:密码@IP地址/共享目录/";
            String smbFileUrl = "smb://smbuser:1234@192.168.0.101/smb/";
            String localDir = "F:\\look\\look.txt";
            InputStream inputStream = null;
            OutputStream outputStream = null;
            try {
                //创建一个本地文件对象
                File localFile = new File(localDir);
                //获取本地文件的文件名,此名字用于在远程的Samba服务器上指定目录创建同名文件
                String localFileName = localFile.getName();
                //创建远程服务器上Samba文件对象
                SmbFile remoteSmbFile = new SmbFile(smbFileUrl + File.separator + localFileName);
                //打开一个文件输入流执行本地文件,要从它读取内容
                inputStream = new BufferedInputStream(new FileInputStream(localFile));
                //打开一个远程Samba文件输出流,将文件复制到的目的地
                outputStream = new BufferedOutputStream(new SmbFileOutputStream(remoteSmbFile));
    
                //缓冲内存
                byte[] buffer = new byte[1024];
                while (inputStream.read(buffer) != -1) {
                    outputStream.write(buffer);
                }
                System.out.println("文件上传完成!");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (outputStream != null) {
                        outputStream.close();
                    }
                    if (inputStream != null) {
                        inputStream.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        //从samba服务器上下载指定的文件到本地目录
        public static void downLoadFileFromSamba() {
            //String smbFileUrl = "smb://smb用户名:密码@IP地址/共享目录/";
            String smbFileUrl = "smb://smbuser:1234@192.168.0.101/smb/look.txt";
            String localDir = "F:\\look";
            InputStream inputStream = null;
            OutputStream outputStream = null;
            try {
                //创建一个smbFile对象对应远程服务器上的SmbFile
                SmbFile smbFile = new SmbFile(smbFileUrl);
                //获取远程文件的文件名,这个的目的是为了在本地的目录下创建一个同名文件
                String smbFileName = smbFile.getName();
                //本地文件又本地目录,路径分隔符,文件名拼接而成
                File localFile = new File(localDir + File.separator + smbFileName);
                //打开文件输入流,指向远程的smb服务器上的文件,特别注意,这里流包装器包装了SmbFileInputStream
                inputStream = new BufferedInputStream(new SmbFileInputStream(smbFile));
                //打开文件输出流,指向新创建的本地文件,作为最终复制到的目的地
                outputStream = new BufferedOutputStream(new FileOutputStream(localFile));
    
                //缓冲内存
                byte[] buffer = new byte[1024];
                while (inputStream.read(buffer) != -1) {
                    outputStream.write(buffer);
                }
                System.out.println("文件下载完成!");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (outputStream != null) {
                        outputStream.close();
                    }
                    if (inputStream != null) {
                        inputStream.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    展开全文
  • 公司新做的系统希望通过域登录来实现。在网上查找资料知道能用jcifs来实现。但是不知道怎么搞?
  • JavaJCIFS访问网络文件共享

    千次阅读 2015-03-31 15:14:54
    JavaJCIFS访问网络文件共享 如果设置win7下的局域网文件共享可以查看一下链接: http://jingyan.baidu.com/article/fec7a1e53efe621190b4e7ae.html Java代码  public class ...

    Java 用JCIFS访问网络文件共享


    如果设置win7下的局域网文件共享可以查看一下链接:

    http://jingyan.baidu.com/article/fec7a1e53efe621190b4e7ae.html
    Java代码   收藏代码
    1. public class UploadDownloadUtil  
    2. {  
    3.   
    4.     /** 
    5.      * 从共享目录拷贝文件到本地 
    6.      * @param remoteUrl 共享目录上的文件路径 
    7.      * @param localDir 本地目录 
    8.      */  
    9.     public void smbGet(String remoteUrl, String localDir)  
    10.     {  
    11.         InputStream in = null;  
    12.         OutputStream out = null;  
    13.         try  
    14.         {  
    15.             SmbFile remoteFile = new SmbFile(remoteUrl);  
    16.             //这一句很重要  
    17.             remoteFile.connect();  
    18.             if (remoteFile == null)  
    19.             {  
    20.                 System.out.println("共享文件不存在");  
    21.                 return;  
    22.             }  
    23.             String fileName = remoteFile.getName();  
    24.             File localFile = new File(localDir + File.separator + fileName);  
    25.             in = new BufferedInputStream(new SmbFileInputStream(remoteFile));  
    26.             out = new BufferedOutputStream(new FileOutputStream(localFile));  
    27.             byte[] buffer = new byte[1024];  
    28.             while (in.read(buffer) != -1)  
    29.             {  
    30.                 out.write(buffer);  
    31.                 buffer = new byte[1024];  
    32.             }  
    33.         }  
    34.         catch (Exception e)  
    35.         {  
    36.             e.printStackTrace();  
    37.         }  
    38.         finally  
    39.         {  
    40.             try  
    41.             {  
    42.                 out.close();  
    43.                 in.close();  
    44.             }  
    45.             catch (IOException e)  
    46.             {  
    47.                 e.printStackTrace();  
    48.             }  
    49.         }  
    50.     }  
    51.   
    52.     /** 
    53.      * 从本地上传文件到共享目录 
    54.      * @Version1.0 Sep 25, 2009 3:49:00 PM 
    55.      * @param remoteUrl 共享文件目录 
    56.      * @param localFilePath 本地文件绝对路径 
    57.      */  
    58.     public void smbPut(String remoteUrl, String localFilePath)  
    59.     {  
    60.         InputStream in = null;  
    61.         OutputStream out = null;  
    62.         try  
    63.         {  
    64.             File localFile = new File(localFilePath);  
    65.   
    66.             String fileName = localFile.getName();  
    67.             SmbFile remoteFile = new SmbFile(remoteUrl + "/" + fileName);  
    68.             in = new BufferedInputStream(new FileInputStream(localFile));  
    69.             out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));  
    70.             byte[] buffer = new byte[1024];  
    71.             while (in.read(buffer) != -1)  
    72.             {  
    73.                 out.write(buffer);  
    74.                 buffer = new byte[1024];  
    75.             }  
    76.         }  
    77.         catch (Exception e)  
    78.         {  
    79.             e.printStackTrace();  
    80.         }  
    81.         finally  
    82.         {  
    83.             try  
    84.             {  
    85.                 out.close();  
    86.                 in.close();  
    87.             }  
    88.             catch (IOException e)  
    89.             {  
    90.                 e.printStackTrace();  
    91.             }  
    92.         }  
    93.     }  
    94.   
    95.     public static void main(String[] args)  
    96.     {  
    97.         UploadDownloadUtil test = new UploadDownloadUtil();  
    98.         // smb:域名;用户名:密码@目的IP/文件夹/文件名.xxx  
    99.         // test.smbGet("smb://szpcg;jiang.t:xxx@192.168.193.13/Jake/test.txt",  
    100.         // "c://") ;  
    101.           
    102. //      test.smbPut("smb://szpcg;jiang.t:xxx@192.168.193.13/Jake",  
    103. //              "c://test.txt");  
    104.           
    105.           
    106.         //用户名密码不能有强字符,也就是不能有特殊字符,否则会被作为分断处理  
    107.         test.smbGet("smb://CHINA;xieruilin:123456Xrl@10.70.36.121/project/report/网上问题智能分析助手使用文档.doc",  
    108.         "c://Temp/");  
    109.   
    110.     }  
    111.   
    112. }  


    需要导入包jcifs-1.3.15.jar

     public String storeByRmoeteFilename(String ip,String name,String password,String filePath,String filename, MultipartFile file) throws IOException
    		 {
        	<span style="color:#ff0000;">NtlmPasswordAuthentication  auth = new NtlmPasswordAuthentication(ip, name, password);</span>
        	SmbFile smbFile;
    		try {
    			<span style="color:#ff6666;">smbFile = new SmbFile(filePath,auth);
    			if (!smbFile.exists()) {
    				smbFile.mkdirs();
    			}</span>
    		} catch (MalformedURLException e) {
    			logger.error(e.getMessage());
    			e.printStackTrace();
    		} catch (SmbException e) {
    			logger.error(e.getMessage());
    			e.printStackTrace();
    			throw e;
    		}
    		InputStream in = null;
    		OutputStream out = null;
    	   try {
    		   smbFile = new SmbFile(filePath+filename,auth);
    		   if(!smbFile.exists()){
    			   smbFile.createNewFile();
    		   }
    		    in = file.getInputStream();
    		    out = smbFile.getOutputStream();
    	       byte[] buffer = new byte[1024*10];  
    	       int i = 0;
    	      long uploadSize =0;
    	      while((i=in.read(buffer))!=-1){//in对象的read方法返回-1为 文件以读取完毕 
    	    	  out.write(buffer, 0, i);  
    	          uploadSize = uploadSize+i;
    	           buffer = new byte[1024*10];  
    	       }  
    	        out.flush();
    	        in.close();
    	        out.close();
    	   } catch (MalformedURLException e) {
    		   logger.error(e.getMessage());
    	   }catch (SmbException e) {
    			logger.info("服务器磁盘空间不足:"+e);
    		} catch (IOException e) {
    		   logger.error(e.getMessage());
    		if (null!=in) {
    			try {
    				in.close();
    			} catch (IOException e1) {
    				logger.error(e.getMessage());
    			}
    		}
    		if (null!=out) {
    			try {
    				in.close();
    			} catch (IOException e1) {
    				logger.error(e.getMessage());
    			}
    		}
    		throw e;
    	}
    		return filename;
    	}





    展开全文
  • 导入依赖的相关jar jcifs-1.3.xx.jar <dependency> <groupId>jcifs</groupId> <artifactId>jcifs</artifactId> <version>1.3.17</version> </dependency> ...
    1. 服务器指定共享文件夹
    2. 验证服务器共享文件夹本地可以访问:

    导入依赖的相关jar包   jcifs-1.3.xx.jar

    <dependency>
        <groupId>jcifs</groupId>
        <artifactId>jcifs</artifactId>
        <version>1.3.17</version>
    </dependency>
    1. 创建 java 类  SmbUtil(随便自己如何定义类名)
    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://administrator:123456@10.8.66.22/mars/";
            String localFile = "C:\\Users\\Administrator\\Desktop\\***.txt"; // 本地要上传的文件
            File file = new File(localFile);
            SmbUtil smb = SmbUtil.getInstance(remoteUrl);
            smb.uploadFile(file);// 上传文件
        }
    }
    1.  
    2. 如果有出现错误, 如
    3. 需要将远程电脑配置
      1. 打开电脑的设置,进入控制面板
      2. 启用或者关闭
      3. 找到 smb 
      4. 点击确定即可(需要重启电脑,否则不会生效)
    展开全文
  • 这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全! 我们通过一个demo来看看jcifs实现SSO,SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户仅仅须要登录一次就能够訪...

    近期一段时间发现AD这东西老火了,尤其是涉及到安全这一方面的,所以AD域用户认证成了如今网络安全方面的产品必备!这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全!

    我们通过一个demo来看看jcifs实现SSO,SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户仅仅须要登录一次就能够訪问全部相互信任的应用系统。它包含能够将这次基本的登录映射到其它应用中用于同一个用户的登录的机制。它是眼下比較流行的企业业务整合的解决方式之中的一个。

    第一步:把jcifs-1.3.15.jar放到tomcat的webapp文件夹。

    第二步:在web.xml中配置:

    <filter>
    	<filter-name>NtlmHttpFilter</filter-name>
    	<filter-class>jcifs.http.NtlmHttpFilter</filter-class>
    	<init-param>
    		<param-name>jcifs.http.domainController</param-name>
    		<!-- 域serverIP -->
    		<param-value>10.10.2.153</param-value>
    	</init-param>
    	<init-param>
    		<param-name>jcifs.util.loglevel</param-name>
    		<!-- 日志等级 -->
    		<param-value>6</param-value>
    	</init-param>
    	<init-param> 
    		<param-name>jcifs.smb.lmCompatibility</param-name> 
    		<param-value>0</param-value> 
    	</init-param> 
    	<init-param> 
    		<param-name>jcifs.smb.client.useExtendedSecurity</param-name> 
    		<param-value>false</param-value> 
    	</init-param>
    	<init-param>
    		<param-name>jcifs.smb.client.username</param-name>
    		<!-- 账号 -->
    		<param-value>administrator</param-value>
    	</init-param>
    	<init-param>
    		<param-name>jcifs.smb.client.password</param-name>
    		<!-- 密码 -->
    		<param-value>admin</param-value>
    	</init-param> 
    </filter>
    <filter-mapping>
    	<filter-name>NtlmHttpFilter</filter-name>
    	<url-pattern>/*</url-pattern>
    </filter-mapping>

    第三步:部署重新启动服务,看看效果

    假设不在此处输入域用户和password而且域用户和password不对的话,你就无法訪问到其它的数据!

    展开全文
  • 第一步:新建一个共享文件夹 ...第二步:项目中引入jcifs包 <!-- 操作共享文件 --> <dependency> <groupId>jcifs</groupId> <artifactId>jcifs</artifactId> <version&
  • jcifs

    千次阅读 2013-06-14 21:58:15
    SDescription说明 Packages 软件包 jcifs jcifs   jcifs.netbios jcifs.netbios   jcifs.smb jcifs.smb ...jcifs.util ...jcifs.util
  • jcifs Jar下载地址https://www.jcifs.org/ 为了确保稳定性我们需要下载源码并修改AuthFilter,将34行userNameParameter变量添加static声明
  • jcifs.jar支持域单点登录。只是jcifs.jar。之前项目用过还不错。
  • 两个不同类型的的比较
  • Man Called H..7经过多次试验和失败后,唯一可靠的方法就是老去学校并使用FileInputStream和FileOutputStream,如下所示:`SmbFile[] files = getSMBListOfFiles(sb, logger, domain, userName, password, sourcePath, ...
  • 代码直接可以用,包含完整的上传和下载代码,只需要修改ip和路径即可。
  • jcifs包 源代码

    2008-12-23 17:30:15
    这个资源是jcifs的源代码,有兴趣的可以看看,可以对自己写代码有很大的提高
  • JCIFS

    千次阅读 2015-11-09 14:26:53
     JCIFS的开发方法类似java的文件操作功能,它的资源url定位:smb://{user}:{password}@{host}/{path},smb为协议名,user和password分别为共享文件机子的登陆名和密码,@后面是要访问的资源的主机名或IP地址。...
  • 注意,先通过NtlmPasswordAuthentication进行验证,验证通过后用SmbFile 加入即可解决jcifs密码中的特殊符号问题 public void smbGet(String remoteUrl,String localDir) {  NtlmPasswordAuthentication auth...
  • java跨服务器保存文件:jcifs & FTP

    千次阅读 2016-10-09 14:50:57
    两种方式  1.使用共享网络磁盘的形式,在当前的服务器简历一个另一台服务器的网络磁盘,直接操作读写这个网络磁盘...帖子1:java上传图片到另一台服务器上,如何解决?  http://bbs.csdn.net/topics/370033090
  • 加入jar即可 <dependency> <groupId>jcifs</groupId> <artifactId>jcifs</artifactId> <version>1.3.18</version> </dependency>
  • java远程发送文件到服务器(jcifs.smb实现方式)
  • 是一个完全用Java开发的SMB客户端库。它紧密地遵循CIFS规范(是Microsoft Windows平台标准文件共享协议),支持Unicode,命令管道,批处理,线程化调用者的IO复用,加密认证,完整事务,域/工作组/主机/共享/文件...
  • http://z-jianwen.iteye.com/blog/616059 感谢博主z_jianwen的无私分享。package com.yss.test.FileReadWriter; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.Fil...
  • jCIFS是一个完全用Java开发的SMB客户端库。它紧密地遵循CIFS规范(是Microsoft Windows平台标准文件共享协议),支持Unicode,命令管道,批处理,线程化调用者的IO复用,加密认证,完整事务,域/工作组/主机/共享/...
  • Java常用jar用途详解

    千次阅读 2017-08-25 17:26:33
    Java常用jar用途详解,介绍常用lib下的jar用途
  • java开发

    千次阅读 2004-06-23 09:07:00
    这可花了我三个晚上,也希望大家将自己了解的开发加进来,让java开发遍地开花,大家也可就具体开发谈谈自己使用心得。 也希望斑竹多鼓励啦,壮我java开发人员军威(有这么开发还怕谁), 我们java开发人员...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 651
精华内容 260
关键字:

java包jcifs

java 订阅