ftp发送文件包括中文名
public void sendwordToftp() {
try {
Json json = new Json();
String fileName = getRequest().getParameter("url");
fileName = fileName.substring(fileName.indexOf("=") + 1);
String remotePath = ConfigReadUtil.getInstance().getConfigItem(
"FileSavePath")
+ "/" + fileName;
List<Ftpconfig> ftpList = ftpManager.getFtpByName("景点预报");
for (Ftpconfig ftp : ftpList) {
String ip = ftp.getIp();
String port = ftp.getPort();
String username = ftp.getUsername();
String password = ftp.getPassword();
String inpath = ftp.getInpath();
String outpath = ftp.getOutpath();
boolean flag = connect(inpath, ip, port, username, password);
if (flag) {
if (inpath.startsWith("//")) { // 共享目录
List<String> fileNames = TrvalSavedAction
.getFileNamesFromSmb("smb:" + remotePath);
for (String name : fileNames) {
String localFile = "D:/Temp";
File f = new File(localFile);
if (!f.exists()) {
f.mkdirs();
}
File file = TrvalSavedAction.readFromSmb("smb:"
+ remotePath.trim() + name, localFile);
upload(file, inpath);
}
} else {
File file = new File(remotePath);
upload(file, inpath);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private boolean connect(String inpath, String ip, String port,
String username, String password) {
boolean result = false;
try {
ftp = new FTPClient();
int reply;
int p = Integer.parseInt(port);
ftp.connect(ip, p);
ftp.login(username, password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(inpath);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
/**
*
* @param file
* 上传的文件或文件夹
* @param localPath
* 服务器上的路径
* @throws Exception
*/
private void upload(File file, String localPath) throws Exception {
if (file.isDirectory()) {
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
File file1 = new File(file.getPath() + "\\" + files[i]);
String fileName = file1.getName();
String filePath = file1.getAbsolutePath();
if (file1.isDirectory()) {
upload(file1, localPath);
ftp.changeToParentDirectory();
} else {
File file2 = new File(localPath + "\\" + files[i]);
FileInputStream input = new FileInputStream(file2);
// \test\新建文本文档.txt
// \test\01.docx
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
String name = new String(file2.getName().getBytes("GB2312"),"ISO-8859-1");
ftp.storeFile(file2.getName(), input);
input.close();
}
}
} else {
File file2 = new File(file.getPath());
FileInputStream input = new FileInputStream(file2);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
String name = new String(file2.getName().getBytes("GB2312"),"ISO-8859-1");
ftp.storeFile(name, input);
input.close();
}
}
ftp发送文件包括中文名的更多相关文章
- ftp发送文件
#!/bin/bash #author:luyongjin IP=220.250.65.22 USERNAME='ftp_hangye20' PASSWORD='oUo2JD7oK#u-epw' #D ...
- python网络编程-socket上传下载文件(包括md5验证,大数据发送,粘包处理)
ftp server 1) 读取文件名 2)检查文件是否存在 3)打开文件 4)检查文件大小 5)发送文件大小给客户端 6)等客户端确认 7)开始边读边(md5计算)发数据 8)给客户端发md5 ft ...
- ftp (文件传输协议)
ftp (文件传输协议) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议” ...
- FTP远程文件传输命令
使用ftp命令进行远程文件传输 ftp命令是标准的文件传输协议的用户接口.ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法.它允许用户传输ASCII文件和二进制文件. 在ftp会话过程 ...
- [转]C#网络编程(订立协议和发送文件) - Part.4
本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part4.aspx 源码下载:http://www.trac ...
- python ftp 传输文件
# -*- coding: utf-8 -*- # 本地bytes 数据上报服务器同时创建文件from ftplib import FTP import time, _io from constant ...
- ASP.NET MVC 向浏览器发送文件以提供文件下载功能
撑到大三了,结果发现周围的同学更加堕落了,尤其是某些人,表面上看起来很认真,实际上三天打鱼,两天晒网,结果一事无成,却还要抱怨学校教育失败. 为了吸取他们的教训,就算是一个小小的编码问题,我也要努力解 ...
- C#网络编程(订立协议和发送文件) - Part.4
文件传输 前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件.比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1.S2或S3(S为Send缩写)时, ...
- c# ftp创建文件(非上传文件)
c# ftp创建文件(非上传文件) 一.奇葩的故事: 今天项目中遇到这么个奇葩的问题,ftp文件传输完成后要在ftp目录下另一个文件夹下创建对应的空文件,听说是为了文件的完整性,既然这么说,那么就必 ...
随机推荐
- HDU 3363 Ice-sugar Gourd (贪心)
题意:给你一个串,串中有H跟T两种字符,然后切任意刀,使得能把H跟T各自分为原来的一半. 析:由于只有两个字母,那么只要可以分成两份,那么一定有一段是连续的. 代码如下: #include <c ...
- js关系图库:aworkflow
auto-workflow 用于快速构建各种关系图的库,比如流程图,可视化执行流等 github地址:https://github.com/auto-workflow/AWorkflow 快速开始 n ...
- css3的那些高级选择器二
在上个星期我介绍了css3的属性选择器,伪类选择器和结构伪类选择器,今天楼主继续把其它的css3选择器说完. 在css3中,共有11中UI状态伪类选择器,分别是E:hover,E:active,E:f ...
- Animator 设置动画效果
1. 调节预设对象大小适中 2. 设置骨骼,修改关节 3. 拖入预设动作效果对象中 4. 将预设对象拉入场景中,并新建AnimatorController 5. 新建动作或BlendTree,设置参数 ...
- 我的BootStrap学习笔记
1.全局样式里面: 1.container:版心 2.col-xx-xx:栅格布局 3.btn btn-default: 按钮,默认按钮样式 4..pull-left pull-right cle ...
- 【Head First Java 读书笔记】(七)继承
继承与多态 了解继承 继承的关系意味着子类继承了父类的实例变量和方法.父类比较抽象,子类比较具体. 继承层次的设计 找出具有共同属性和行为的对象(用继承来防止子类中出现重复的程序代码) 设计代表共同状 ...
- CSS中的三种基本的定位机制(普通流、定位、浮动)
一.普通流 普通流中元素框的位置由元素在XHTML中的位置决定.块级元素从上到下依次排列,框之间的垂直距离由框的垂直margin计算得到.行内元素在一行中水平布置. 普通流就是html文档中的元素如块 ...
- C++编译器之间的不同性能
C++编译器之间的不同性能 编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序.一个现代编译器的主要工作流程:源代码 (source code) →预处理器 (preprocessor) → ...
- 洛谷 P2596 [ZJOI2006]书架 (splay)
题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本.由于这些 ...
- HTML5+CSS3+jQuery Mobile轻松构造APP与移动网站 (陈婉凌) 中文pdf扫描版
<HTML5+CSS3+jQuery Mobile轻松构造APP与移动网站>以HTML与CSS为主,配合jQuery制作网页,并搭配jQueryMobile制作移动网页,通过具体的范例从基 ...