From 2795f725dae0b66281490394b981e5f79e448fa8 Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Mon, 16 Jun 2025 14:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=E4=BC=A0?= =?UTF-8?q?=E8=BE=93=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- njcn-common/pom.xml | 7 - .../common/utils/file/FileTransferUtil.java | 164 ------------------ 2 files changed, 171 deletions(-) delete mode 100644 njcn-common/src/main/java/com/njcn/common/utils/file/FileTransferUtil.java diff --git a/njcn-common/pom.xml b/njcn-common/pom.xml index 686b0c8..4e03bdc 100644 --- a/njcn-common/pom.xml +++ b/njcn-common/pom.xml @@ -130,13 +130,6 @@ 3.5.2 - - - eu.agno3.jcifs - jcifs-ng - 2.1.9 - - \ No newline at end of file diff --git a/njcn-common/src/main/java/com/njcn/common/utils/file/FileTransferUtil.java b/njcn-common/src/main/java/com/njcn/common/utils/file/FileTransferUtil.java deleted file mode 100644 index 4d33c31..0000000 --- a/njcn-common/src/main/java/com/njcn/common/utils/file/FileTransferUtil.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.njcn.common.utils.file; - -import jcifs.CIFSContext; -import jcifs.CIFSException; -import jcifs.context.SingletonContext; -import jcifs.smb.*; - -import java.io.*; -import java.net.MalformedURLException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - -/** - * @author hongawen - * @version 1.0 - * @data 2025/6/16 14:28 - * 用于向Windows服务器传输文件 - */ -public class FileTransferUtil { - - /** - * 向Windows服务器传输文件 - * @param serverIP 服务器IP地址 - * @param username 用户名 - * @param password 密码 - * @param localFilePath 本地文件路径 - * @param remotePath 远程路径(例如:D:/folder/) - * @return 是否传输成功 - */ - public static boolean transferFile(String serverIP, String username, String password, - String localFilePath, String remotePath) { - try { - // 构建远程文件URL - String remoteUrl = String.format("smb://%s/%s", serverIP, remotePath); - - // 创建认证上下文 - CIFSContext context = SingletonContext.getInstance() - .withCredentials(new NtlmPasswordAuthenticator(username, password)); - - // 获取远程目录 - SmbFile remoteDir = new SmbFile(remoteUrl, context); - if (!remoteDir.exists()) { - remoteDir.mkdirs(); - } - - // 获取本地文件 - Path localPath = Paths.get(localFilePath); - if (!Files.exists(localPath)) { - throw new FileNotFoundException("Local file not found: " + localFilePath); - } - - // 构建远程文件路径 - String fileName = localPath.getFileName().toString(); - String remoteFilePath = remoteUrl + fileName; - SmbFile remoteFile = new SmbFile(remoteFilePath, context); - - // 传输文件 - try (InputStream in = Files.newInputStream(localPath); - OutputStream out = remoteFile.getOutputStream()) { - - byte[] buffer = new byte[8192]; - int len; - while ((len = in.read(buffer)) != -1) { - out.write(buffer, 0, len); - } - } - - return true; - - } catch (MalformedURLException e) { - System.err.println("Invalid URL: " + e.getMessage()); - return false; - } catch (CIFSException e) { - System.err.println("CIFS error: " + e.getMessage()); - return false; - } catch (IOException e) { - System.err.println("IO error: " + e.getMessage()); - return false; - } - } - - /** - * 向Windows服务器传输文件(带进度回调) - * @param serverIP 服务器IP地址 - * @param username 用户名 - * @param password 密码 - * @param localFilePath 本地文件路径 - * @param remotePath 远程路径 - * @param progressCallback 进度回调接口 - * @return 是否传输成功 - */ - public static boolean transferFileWithProgress(String serverIP, String username, String password, - String localFilePath, String remotePath, - ProgressCallback progressCallback) { - try { - // 构建远程文件URL - String remoteUrl = String.format("smb://%s/%s", serverIP, remotePath); - - // 创建认证上下文 - CIFSContext context = SingletonContext.getInstance() - .withCredentials(new NtlmPasswordAuthenticator(username, password)); - - // 获取远程目录 - SmbFile remoteDir = new SmbFile(remoteUrl, context); - if (!remoteDir.exists()) { - remoteDir.mkdirs(); - } - - // 获取本地文件 - Path localPath = Paths.get(localFilePath); - if (!Files.exists(localPath)) { - throw new FileNotFoundException("Local file not found: " + localFilePath); - } - - // 获取文件大小 - long fileSize = Files.size(localPath); - - // 构建远程文件路径 - String fileName = localPath.getFileName().toString(); - String remoteFilePath = remoteUrl + fileName; - SmbFile remoteFile = new SmbFile(remoteFilePath, context); - - // 传输文件 - try (InputStream in = Files.newInputStream(localPath); - OutputStream out = remoteFile.getOutputStream()) { - - byte[] buffer = new byte[8192]; - int len; - long transferred = 0; - - while ((len = in.read(buffer)) != -1) { - out.write(buffer, 0, len); - transferred += len; - - // 计算并回调进度 - if (progressCallback != null) { - int progress = (int) ((transferred * 100) / fileSize); - progressCallback.onProgress(progress); - } - } - } - - return true; - - } catch (MalformedURLException e) { - System.err.println("Invalid URL: " + e.getMessage()); - return false; - } catch (CIFSException e) { - System.err.println("CIFS error: " + e.getMessage()); - return false; - } catch (IOException e) { - System.err.println("IO error: " + e.getMessage()); - return false; - } - } - - /** - * 进度回调接口 - */ - public interface ProgressCallback { - void onProgress(int progress); - } -}