1、项目结构
2、demo
package up_file;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileOutputStream;
public class up_file {
// 共享文件夹所在服务器ip
private static String USER_DOMAIN = "172.16.3.xxx";
//访问用户
private static String USER_ACCOUNT = "wwx";
//访问密码
private static String USER_PWS = "xxxxxx";
//共享文件夹地址
private static final String shareDirectory = "http://172.16.3.xxx/temp/123";
//字节长度
private static final int byteLen = 1024*10;
public static void main(String[] args) {
// TODO Auto-generated method stub
File localFile=new File("D:\\test测试.txt");
smbPut(shareDirectory, localFile);
}
public static void smbPut(String shareDirectory, File localFile) {
InputStream in = null;
OutputStream out = null;
try {
String fileName = localFile.getName();
// 域服务器验证
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(USER_DOMAIN, USER_ACCOUNT,USER_PWS);
SmbFile remoteFile = new SmbFile(shareDirectory + File.separator + fileName, auth);
// 解决办法: SmbFile remoteFile = new SmbFile(remotePhotoUrl+File.separator+fileName,auth);
// 改为:SmbFile remoteFile = new SmbFile(remotePhotoUrl+"/"+fileName,auth);便可以进行文件上传
in = new BufferedInputStream(new FileInputStream(localFile));
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
byte[] buffer = new byte[byteLen];
while (in.read(buffer) != -1) {
out.write(buffer);
buffer = new byte[byteLen];
}
out.flush();
System.out.println("上传成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("失败1");
} finally {
try {
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("失败2");
}
}
}
}
3、运行结果