package com.login.example;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.UnknownHostException;
import jcifs.UniAddress;
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbException;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFileOutputStream;
import jcifs.smb.SmbSession;
public class LonginExample {
public static String userName = "administrator";
public static String password = "administrator";
public static String domainIP = "Tiancom.net";
NtlmPasswordAuthentication auth;{
getInParam();
}
private void getInParam(){
try {
UniAddress dc = UniAddress.getByName(domainIP);
System.out.println("UniAddress:"+dc);
auth = new NtlmPasswordAuthentication(domainIP, userName, password);
System.out.println("auth:"+auth.getDomain());
System.out.println("username:"+auth.getUsername());
System.out.println("password:"+auth.getPassword());
SmbSession.logon(dc,auth);
} catch (UnknownHostException e) {
e.printStackTrace();
System.out.println("登录失败!!!");
} catch (SmbException e) {
e.printStackTrace();
System.out.println("无法访问!!!");
}
}
public static void main(String[] args) {
final LonginExample test = new LonginExample();
//单次执行
//从共享目录拷贝文件到本地
test.smbGet("smb://192.168.0.10/share/测试.txt", "D:\\UAPNETFile\\HYCZ");
//向共享目录上传文件
test.smbPut("smb://192.168.0.10/share","D:/UAPNETFile/测试.txt");
//线程循环执行
/*new Thread() {
public void run() {
LonginExample test = new LonginExample();
test.smbPut("smb://192.168.0.10/share","D:/UAPNETFile/测试.txt");
System.out.println("1");
}
}.start();*/
try {
Thread.sleep(100000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* 从共享目录拷贝文件到本地
* */
public void smbGet(String remoteUrl, String localDir) {
InputStream in = null;
OutputStream out = null;
try {
getInParam();
SmbFile remoteFile = new SmbFile(remoteUrl, auth);
if (remoteFile == null) {
System.out.println("共享文件不存在");
return;
}
String fileName = remoteFile.getName();
File localFile = new File(localDir + File.separator + fileName);
in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
out = new BufferedOutputStream(new FileOutputStream(localFile));
byte[] buffer = new byte[1024];
int i = 0;
while ((i = in.read(buffer)) != -1) {
out.write(buffer, 0, i);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.flush();
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 向共享目录上传文件
* */
public void smbPut(String remoteUrl,String localFilePath) {
InputStream in = null;
OutputStream out = null;
try {
File localFile = new File(localFilePath);
String fileName = localFile.getName();
SmbFile remoteFile = new SmbFile(remoteUrl, auth);
//如果文件夹不存在,先建立文件夹
if (!remoteFile.exists()) {
remoteFile.mkdirs();
}
remoteFile = new SmbFile(remoteUrl+fileName, auth);
//如果文件不存在先建立文件
if(!remoteFile.exists()){
remoteFile.createNewFile();
}
in = new BufferedInputStream(new FileInputStream(localFile));
System.out.println("SmbFileOutputStream"+new SmbFileOutputStream(remoteFile));
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
byte[] buffer = new byte[1024];
while(in.read(buffer)!=-1){
out.write(buffer);
buffer = new byte[1024];
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
一下是转载的代码,没有用域,参考了下
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import jcifs.smb.SmbFileInputStream;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileOutputStream;
public class ReadShareFile {
public static void main(String[] args) {
new Thread() {
public void run() {
smbGet("smb://Administrator:01@192.168.0.47/share/测试.txt",
"D:\\UAPNETFile\\");
smbPut("smb://Administrator:01@192.168.0.47/share",
"D:/远程上传.txt");
System.out.println("操作已经完成");
}
}.start();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//获取远程共享的文件内容
public static void smbPut(String remoteUrl, String localFilePath) {
InputStream in = null;
OutputStream out = null;
try {
File localFile = new File(localFilePath);
String fileName = localFile.getName();
SmbFile remoteFile = new SmbFile(remoteUrl + "/" + fileName);
in = new BufferedInputStream(new FileInputStream(localFile));
out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));
byte[] buffer = new byte[1024];
while (in.read(buffer) != -1) {
out.write(buffer);
buffer = new byte[1024];
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//向远程共享文件夹上传内容
public static void smbGet(String remoteUrl, String localDir) {
InputStream in = null;
OutputStream out = null;
try {
SmbFile remoteFile = new SmbFile(remoteUrl);
if (remoteFile == null) {
System.out.println("共享文件不存在");
return;
}
String fileName = remoteFile.getName();
File localFile = new File(localDir + File.separator + fileName);
in = new BufferedInputStream(new SmbFileInputStream(remoteFile));
out = new BufferedOutputStream(new FileOutputStream(localFile));
byte[] buffer = new byte[1024];
while (in.read(buffer) != -1) {
out.write(buffer);
buffer = new byte[1024];
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
### Nginx 搭建文件服务器:上传与获取文件 在互联网技术中,Nginx 被广泛用于构建高性能、稳定的Web服务器环境。本文将详细介绍如何利用 OpenResty + Nginx + Lua 实现一个文件服务器,该服务器支持文件上传与获取...
本教程将深入探讨如何使用WinForm实现文件或文件夹的上传功能,将其发送到远程服务器。我们将关注的重点是如何构建这样的系统,包括客户端的交互设计以及与服务器的通信。 首先,我们需要在WinForm中创建一个用户...
总结来说,"winform上传文件到共享文件夹"是一个结合了文件操作、网络编程和UI交互的典型应用实例,对于学习和掌握C# Winform开发以及文件服务器交互有很好的实践意义。通过学习这个项目,开发者不仅可以提升编程...
3. 文件分发:发布软件更新、教程或其他资源,让用户直接从服务器下载。 4. 测试环境:开发者可以搭建HTTP服务器进行Web应用的测试和调试。 综上所述,HTTP文件共享与上传服务器是一种实用的工具,通过简单的设置就...
### WinForm上传文件到服务器 #### 知识点概述 在.NET Framework中,Windows Forms(简称WinForms)是一种用于创建Windows桌面应用程序的技术。本篇内容介绍如何使用WinForm实现文件的上传功能,即将本地文件传输...
在"服务器上传下载文件工具"这个压缩包中,可能包含了这样的FTP客户端软件,如FileZilla、WinSCP、Cyberduck等,或者是自定义的FTP脚本或程序。这些工具通常都具备上述特性,有的甚至提供更多高级功能,如SSL/TLS...
本篇将详细讲解如何利用C#语言,结合命令行工具CMD来实现文件的上传和下载,以及如何在服务器上执行这些操作。 首先,我们关注的是文件的上传。在提供的代码片段中,`uploadFile`方法通过创建一个`Process`对象来...
FlashFXP是一款功能强大的FTP客户端软件,主要用于在本地计算机与远程服务器之间进行文件的上传、下载和管理。这款工具在IT行业中广泛应用于网站维护、软件分发、数据备份等场景,因其高效、稳定和易用性而备受青睐...
首先,FTP服务器是提供文件存储和访问服务的服务器应用,允许用户从远程位置上传或下载文件。设置FTP服务器通常涉及到安装服务器软件(如vsftpd、ProFTPD等),配置服务器参数(如匿名访问、用户权限、端口设置等)...
FTP允许用户从远程服务器上下载文件或上传文件到服务器。这个过程对于网站更新、数据备份、资源共享等场景至关重要。在描述中提到的“将本地文件上传到服务器”和“从服务器上下载文件”,都是FTP的主要功能。 FTP...
这通常通过FTP客户端的自动同步功能实现,可以定期检查本地和服务器上的文件差异,并进行必要的上传或下载操作,以确保两边的文件保持一致。 综上所述,FTP上传与下载是网络文件交换的基础操作,涉及FTP客户端和...
- 重命名上传文件:避免文件名冲突和可能的安全漏洞,如路径遍历攻击,通常会为上传的文件生成随机或唯一的名字。 - 存储位置:上传的文件应存储在安全的目录下,避免直接暴露在Web根目录,防止直接访问。 6. ...
在安卓应用开发中,实现文件上传到服务器的功能是一项常见的需求,这对于数据共享、备份和同步至关重要。本教程将深入探讨如何构建一个安卓应用程序,允许用户选择本地文件并将其上传到服务器,供其他安卓用户下载...
上传是指将本地电脑上的文件传输到其他网络位置,而下载则是相反的过程,是从网络位置获取文件并保存到本地。此工具通过提供一个简洁的界面,用户只需输入IP地址,就可以访问到共享的文件目录,进行文件的选择上传或...
文件上传共享是网络环境中一种常见的交互方式,它允许用户将本地计算机上的文件通过互联网发送到服务器,以便其他用户可以访问、下载或进行协作编辑。在本文中,我们将深入探讨文件上传共享系统的实现、功能以及其在...
服务器文件上传软件是IT行业中一个不可或缺的工具,主要用于将本地计算机上的文件传输到远程服务器,以便在互联网上发布、共享或存储数据。标题提到的“服务器文件上传软件”很可能是指CuteFTP 8,这是一个非常知名...
本文将深入探讨如何使用HTTP上传文件到WEB服务器,并涉及相关的知识点。 首先,理解HTTP协议至关重要。HTTP是一种应用层协议,用于客户端(如浏览器)与服务器之间的数据交换。它定义了请求和响应的格式,以及如何...
Android上传文件通常涉及`Multipart/form-data`编码方式,这是HTTP协议中用于处理多部分数据的一种格式,常用于文件上传。通过在请求头设置`Content-Type: multipart/form-data`,然后将文件内容作为请求体的一部分...
* OTA 在线升级项目中,需要从 FTP 服务器上下载升级文件到 Android 设备中。 * 文件共享应用中,需要将文件从 Android 设备上传到 FTP 服务器中。 * 文件管理应用中,需要从 FTP 服务器下载文件到 Android 设备中。...
"超经典ftp文件共享服务器"是一个小型、高效的FTP服务器软件,它使得用户可以轻松地在互联网上分享和获取文件。 FTP服务器的工作原理: FTP服务器通过监听特定的端口(默认为21)来接收客户端的连接请求。当客户端...