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发送文件包括中文名的更多相关文章

  1. ftp发送文件

    #!/bin/bash #author:luyongjin IP=220.250.65.22 USERNAME='ftp_hangye20' PASSWORD='oUo2JD7oK#u-epw' #D ...

  2. python网络编程-socket上传下载文件(包括md5验证,大数据发送,粘包处理)

    ftp server 1) 读取文件名 2)检查文件是否存在 3)打开文件 4)检查文件大小 5)发送文件大小给客户端 6)等客户端确认 7)开始边读边(md5计算)发数据 8)给客户端发md5 ft ...

  3. ftp (文件传输协议)

    ftp (文件传输协议) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议” ...

  4. FTP远程文件传输命令

    使用ftp命令进行远程文件传输 ftp命令是标准的文件传输协议的用户接口.ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法.它允许用户传输ASCII文件和二进制文件. 在ftp会话过程 ...

  5. [转]C#网络编程(订立协议和发送文件) - Part.4

    本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part4.aspx 源码下载:http://www.trac ...

  6. python ftp 传输文件

    # -*- coding: utf-8 -*- # 本地bytes 数据上报服务器同时创建文件from ftplib import FTP import time, _io from constant ...

  7. ASP.NET MVC 向浏览器发送文件以提供文件下载功能

    撑到大三了,结果发现周围的同学更加堕落了,尤其是某些人,表面上看起来很认真,实际上三天打鱼,两天晒网,结果一事无成,却还要抱怨学校教育失败. 为了吸取他们的教训,就算是一个小小的编码问题,我也要努力解 ...

  8. C#网络编程(订立协议和发送文件) - Part.4

    文件传输 前面两篇文章所使用的范例都是传输字符串,有的时候我们可能会想在服务端和客户端之间传递文件.比如,考虑这样一种情况,假如客户端显示了一个菜单,当我们输入S1.S2或S3(S为Send缩写)时, ...

  9. c# ftp创建文件(非上传文件)

    c#  ftp创建文件(非上传文件) 一.奇葩的故事: 今天项目中遇到这么个奇葩的问题,ftp文件传输完成后要在ftp目录下另一个文件夹下创建对应的空文件,听说是为了文件的完整性,既然这么说,那么就必 ...

随机推荐

  1. CodeForces 690C2 Brain Network (medium)(树上DP)

    题意:给定一棵树中,让你计算它的直径,也就是两点间的最大距离. 析:就是一个树上DP,用两次BFS或都一次DFS就可以搞定.但两次的时间是一样的. 代码如下: #include<bits/std ...

  2. Word文档如何发CSDN博客

    目前大部分的博客作者在写博客这件事情上都会遇到以下3个痛点:1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.2.发布到博客或公众号平台 ...

  3. MySQL中如何为查询的数据添加自增序号、顺序呢?

    背景介绍 很多时候我们在使用mysql查询数据的时候都会遇到一个问题,就是查询出来了一堆数据,但是查询的数据的表并没有序号,然而部分数据库显示工具是有外带序号显示,但是这种序号不是由sql产生的,而是 ...

  4. SSL证书 .pem转.pfx

    使用OpenSSL来进行转换 OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具.例如 http://slproweb.com/products/Win32OpenS ...

  5. openedx使用中可能用到的一些资源

    这几天一直在弄openedx,你会发现安装好只是第一步,后面还有很多东西在等着你,那么哪里可以看到较新的资料了,分享几个站点: 1.https://readthedocs.org/projects/e ...

  6. ODBC方式操作oracle数据库

    ODBC方式操作oracle数据库 一.查询语句: var strConn = System.Configuration.ConfigurationManager.ConnectionStrings[ ...

  7. 【OCP|052】OCP换题库,052最新题库及答案整理-第10题

    10.Which two are true about consistent database backups? A) They can only be taken when a RECOVERY C ...

  8. 二,PHP缓存机制详解

    一,PHP缓存机制详解 我们可以使用PHP自带的缓存机制来完成页面静态化,但是仅靠PHP自身的缓存机制并不能完美的解决页面静态化,往往需要和其他静态化技术(通常是伪静态技术)结合使用. output ...

  9. IntelliJ IDEA 如何将一个 filename.java 文件直接运行

    IntelliJ IDEA 如何将一个 filename.java 文件直接运行 前言: ​ 出于考证需要,手头有许多 *.java 文件需要进行运行.然后出于对 JetBrains 全家桶的喜爱,选 ...

  10. Struts2框架action路径问题心得----》页面url请求怎么找action

    Struts2 页面url请求怎么找action Struts2 页面url请求如何找action 1.我们使用最原始的方法去查找action,不同注解. struts.xml文件先配置 <!- ...