`
阅读更多

<div class="iteye-blog-content-contain" style="font-size: 14px">

 @SuppressWarnings("unused")
 public Response deleteDoc(HttpServletRequest request, HttpServletResponse response) {
  log.info("ServiceWebServiceImpl deleteDoc method start");
  Map<String , Object> responseMap = new HashMap<String , Object>();
   String docName = request.getParameter("docName");
   String serviceid = request.getParameter("serviceid");
    log.info("docName>>>>>>>=============="+docName);
    log.info("serviceid>>>>>>>=============="+serviceid);
        FTPClient ftpClient = new FTPClient();
        FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
        conf.setServerLanguageCode("zh");
        ftpClient.configure(conf);
        boolean flag = false;
        FileOutputStream fos = null;
        try {
         ftpClient.connect(Constants.FTP_HOST,Constants.FTP_PORT);
         log.info("host :"+ Constants.FTP_HOST+" port :"+Constants.FTP_PORT);
//         ftpClient.setControlEncoding("UTF-8");
            ftpClient.login(Constants.FTP_USERNAME, "admin".equals(Constants.FTP_PASSWORD)?Constants.FTP_PASSWORD:"");
            log.info("username :"+Constants.FTP_USERNAME+" passowrd:"+Constants.FTP_PASSWORD);
           
           //检测连接是否成功 
            int reply = ftpClient.getReplyCode(); 
            if(!FTPReply.isPositiveCompletion(reply)) { 
             ftpClient.disconnect(); 
                System.err.println("FTP server refused connection."); 
                log.info("FTP server refused connection.");
                System.exit(1); 
               
            } 

            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
            ftpClient.changeWorkingDirectory(Constants.SERVICE_DOC_DOWNLOAD_PATH);
            log.info("directory :"+Constants.SERVICE_DOC_DOWNLOAD_PATH);
          
           
            String remoteFileName = null;
            try {
             remoteFileName = java.net.URLDecoder.decode(docName, "utf-8");
             log.info("remoteFileName==================="+remoteFileName);
            } catch (UnsupportedEncodingException e1) {
              e1.printStackTrace();
            }
            FTPFile[] ftpFiles = ftpClient.listFiles();
            int length = ftpFiles.length;
            int num =0;
            log.info("length==================="+length);
           
            if(ftpFiles!=null){
//             flag = ftpClient.deleteFile(new String(docName.getBytes("ISO-8859-1"), "utf-8"));
              for(FTPFile ff:ftpFiles){
               log.info("FTPFile :"+new String(ff.getName().getBytes("ISO-8859-1"), "utf-8") +" ->"+remoteFileName);
               String ftpName = new String(ff.getName().getBytes("ISO-8859-1"), "utf-8");
                log.info("转码后文件名:"+ftpName);
                  if(ftpName.equals(remoteFileName)){   
                   //设置删除权限
                   ftpClient.enterLocalPassiveMode();
                   flag = ftpClient.deleteFile(ff.getName());
                   num++;
                   log.info("flag===================="+flag);
                   ftpClient.logout();
                  }   
              }   
            }
          
            if(num==0){
             //删除数据库此文档
             serviceDocManage.deleteServiceDocByID(Long.parseLong(serviceid));
             responseMap.put("code", 0);
             responseMap.put("message", "删除文件成功");
             log.info("数据库====================删除文件成功");
            }else if(flag){
              //删除数据库此文档
              serviceDocManage.deleteServiceDocByID(Long.parseLong(serviceid));
              responseMap.put("code", 0);
                 responseMap.put("message", "删除文件成功");
                 log.info("数据库====================删除文件成功");
            }else{
             responseMap.put("code", 01);
                responseMap.put("message", "删除文件失败");
                log.info("数据库====================删除文件失败");
            }
          
        } catch (IOException e) {
         log.error("FTP删除出错!", e);
         flag = false;
            responseMap.put("code", 1);
            responseMap.put("message", "FTP删除出错!");
            return Response.ok(responseMap, "application/json").build();
        } finally {
            try {
//             fos.close();
                ftpClient.disconnect();
            } catch (IOException e) {
                log.error("关闭FTP连接发生异常!", e);
                responseMap.put("code", 2);
                responseMap.put("message", "关闭FTP连接发生异常!");
                return Response.ok(responseMap, "application/json").build();
            }
        }
       
        return Response.ok(responseMap, "application/json").build();
 }

 

 

 

 

 

 

 

 

 

 

 

 

</div>

 

分享到:
评论

相关推荐

    java利用FTPClient实现上传下载文件.doc

    FTP 服务器命令是指 FTP 服务器中的命令,例如上传文件、下载文件、删除文件、创建目录等。这些命令可以通过 FTPClient 来执行。 FTPClient 的优点 使用 FTPClient 有很多优点,例如: * 简单易用:FTPClient ...

    获取ftp服务器文件的大小

    ### 获取FTP服务器文件大小的知识点解析 在进行网络文件传输时,经常需要了解远程文件的大小,以便于更好地控制文件的下载进度或者进行其他相关的管理操作。本文将围绕“获取FTP服务器文件的大小”这一主题展开,...

    java FTPClient 文件上传下载文件

    2. **创建FTPClient实例**:接下来,创建一个`FTPClient`实例,用于与FTP服务器交互。 3. **建立连接**:调用`FTPClient`对象的`connect()`方法建立与FTP服务器的连接。可以通过传入主机名(或IP地址)和端口号来...

    Java解析FTP服务器文本文件

    Java解析FTP服务器文本文件 Java解析FTP服务器文本文件是指使用Java语言连接FTP服务器,上传、下载、递归目录遍历等基本操作的集合。在这个过程中,我们需要引入相关的jar包,例如cpdetector.jar、jchardet-1.0.jar...

    java 读取FTP服务器文件

    以上就是使用Java读取FTP服务器文件的基本流程。在实际开发中,你可能还需要处理更多细节,例如重试机制、异常处理、文件上传、文件删除等。了解这些知识点后,你就能在Web服务器和Linux环境下实现与FTP服务器的交互...

    java定时从ftp服务器更新相关文件

    Java定时从FTP服务器更新相关文件是一项常见的任务,特别是在自动化数据同步和备份的场景中。这里主要涉及的技术点包括FTP协议、Java编程以及文件系统操作。本文将深入探讨这些知识点,并提供一个基于`ftp4j`库的...

    java 连接 FTP 文件操作(上传,下载,删除,复制

    以上就是使用Java连接FTP服务器进行文件操作的基本步骤。通过这种方式,开发者可以构建自己的FTP客户端应用程序,实现灵活的文件管理功能。在实际应用中,还需要考虑异常处理、重试机制、文件传输进度显示等细节,以...

    FTP JAVA工具类(连接FTP,上传文件到FTP,删除FTP文件,下载FTP文件,检索FTP文件)

    本篇文章将详细讲解如何使用Java编写一个FTP工具类,实现连接FTP服务器、上传文件、删除文件、下载文件以及检索文件的功能。 首先,我们需要引入Apache Commons Net库,该库提供了丰富的FTP客户端API。在`pom.xml`...

    使用FTPClient实现ftp文件上传

    为了解决这个问题,我们需要在连接FTP服务器时设置字符集为UTF-8: ```java FTPClient ftpClient = new FTPClient(); ftpClient.setDefaultFileTransferMode(FTP.BINARY_FILE_TYPE); ftpClient.connect("ftp.server...

    java大文件上传至ftp服务器带进度条显示的

    总的来说,实现Java大文件上传至FTP服务器并显示同步进度条涉及的关键技术点包括:FTPClient的使用、文件的分块上传、多线程同步、GUI组件的更新以及异常处理。通过合理设计和优化,可以实现高效且用户体验良好的大...

    java实现Ftp批量下载文件及解压

    如果需要从FTP服务器的特定目录下载文件,可以使用`changeWorkingDirectory()`方法。 ```java ftp.changeWorkingDirectory("/path/to/directory"); ``` 4. **列出目录中的文件**: 使用`listNames()`或`list...

    调用FtpClient类上传文件(java)

    最后,调用`storeFile()`方法将文件存储到FTP服务器的指定位置。注意,成功后记得关闭文件流并断开FTP连接。 在实际应用中,你可能需要处理更复杂的情况,例如错误处理、重试机制、目录遍历、文件夹创建等。此外,`...

    java FTP服务器文件上传下载,创建多级文件夹.zip

    Java FTP服务器文件上传下载是Java开发中常见的网络编程任务,主要涉及到FTP(File Transfer Protocol)协议的应用,用于在客户端和服务器之间传输文件。本教程将详细讲解如何使用Java实现FTP服务器的文件上传、下载...

    FTP.rar_ftp swing_java FtpClient_java ftp_swing_swing 开发ftp

    在描述中提到,“Swing+FtpClient实现”指的是利用Java的Swing图形用户界面库来构建用户界面,同时结合了FtpClient,这是一个常用的FTP客户端库,用于与FTP服务器进行交互。Swing提供了丰富的组件和工具,可以构建出...

    JAVA获取FTP文件列表

    本文档将详细介绍一个基于Java的实用工具类`FtpClientUtil`,该类提供了一系列功能来与FTP服务器交互,包括连接到服务器、上传文件、下载文件、获取文件列表、删除文件和目录以及关闭连接等操作。 #### 二、`...

    Java FTP 实现跨服务器文件上传下载

    首先,需要创建一个FTPClient实例并连接到FTP服务器: ```java FTPClient ftpClient = new FTPClient(); try { ftpClient.connect("ftp.server.com", 21); ftpClient.login("username", "password"); } catch...

    JAVA FTPClient文件操作

    #### 删除文件 使用`deleteFile()`方法删除远程文件: ```java boolean deleteSuccess = ftpClient.deleteFile("remote/path/to/delete"); ``` #### 重命名文件 使用`rename()`方法重命名远程文件: ```java ...

    Java常用FTP文件操作说明Apache.FTPClient,ftp4j,jftp

    ### Java常用FTP文件操作详解:Apache.FTPClient, ftp4j, jftp 在Java开发过程中,通过FTP(File Transfer Protocol)进行文件传输是一项常见需求。本文将详细讲解三种常用的FTP客户端库——Apache.FTPClient、ftp4...

    java删除ftp文件.txt

    本文将详细介绍如何通过Java代码实现对FTP服务器上文件的删除操作,并对给出的代码片段进行分析与补充。 #### 二、基础知识 1. **FTP协议简介**: - FTP是一种标准网络协议,用于在计算机网络间进行文件传输。 -...

    java 从ftp服务器下载文件

    ### Java从FTP服务器下载文件知识点解析 在当前数字化转型的大背景下,文件传输协议(File Transfer Protocol,简称FTP)作为互联网上最早的文件传输服务之一,在数据交换、文件共享等方面仍然发挥着重要作用。对于...

Global site tag (gtag.js) - Google Analytics