当前位置: 首页 > 知识库问答 >
问题:

无法将UploadedFile上载到FTP服务器?

柯琛
2023-03-14

当我尝试将uploadedfile对象内容上载到FTP服务器
[它的值从[T:InputFileUpload]组件中获取]
我的web浏览器中的加载指示器播放并且不会停止
调试时,我发现我的come在一行中冻结
FTP.storeFile(destFilePath,inputStream);但是我尝试了3个方法(如代码所示)来上载
,但是所有方法仍然不工作

将文件上载到FTPServer控制器方法

public static String uploadFileToFTPServer
    (String ftpServerIP, String userName, String password,UploadedFile uploadedFile) {

    String destFilePath = null;
    FTPClient ftp = new FTPClient();

    ftp.addProtocolCommandListener(new PrintCommandListener(
            new PrintWriter(System.out)));
    try {

        // Method 1
        byte[] fileBytesContent = uploadedFile.getBytes();
        ByteArrayInputStream inputStream = new ByteArrayInputStream(fileBytesContent);

        // Method 2
//          InputStream inputStream  = uploadedFile.getInputStream();

        // Method 3
//          InputStream inputStreamContent  = uploadedFile.getInputStream();
//          BufferedInputStream inputStream = new BufferedInputStream(inputStreamContent);

        destFilePath = uploadedFile.getName() ;

        // ftp server
        ftp.connect(ftpServerIP);
        ftp.login(userName, password);
        ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
        ftp.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
        ftp.storeFile(destFilePath, inputStream);

        inputStream.close();
        ftp.logout();

    } catch (Exception e) {
        destFilePath = null;             
        e.printStackTrace();

    } finally {
        try {
            ftp.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return destFilePath;
}

共有1个答案

梁鸣
2023-03-14

本地计算机中
防火墙正在运行的问题原因

这就是为什么?
因为在开发环境中
我的计算机被模拟为一个web服务器(因为它运行本地服务器)
我的应用程序需要向一个FTP服务器
写一个文件,所以需要获得与(FTP服务器)通信的特权
防火墙只允许与确定的(服务器:端口)的连接
并且默认情况下防火墙阻止FTP连接(anyserver:20/anyserver:21)

解决方案
所以当我禁用防火墙
时,问题就解决了

 类似资料:
  • 我正在尝试将文件上载到FTP服务器 正如我在这里发现的,如何将文件上传到FTP服务器?,我有以下代码:

  • 我目前正在做一个个人项目,我想上传一张个人资料图片到我的服务器上。通过以表单数据的形式发送图像,我可以轻松地将图像发送到带有postman的服务器上,但当我对其进行相同的改造时,它不起作用,有时它会创建一个1kb的文件,在打开时显示错误。 如果我提供文件到请求Body.create喜欢, 设置新配置文件pic的代码不会执行,如果我只传递URI。getPath()输入。create()方法id在服务

  • 问题内容: 我创建了一个从有权访问的FTP服务器下载文件的功能。如何将文件上传回FTP服务器? 以下是我使用的download_files方法: 问题答案: 使用Apache Commons Net库中的FTPClient类。 这是一个带有示例的代码段: 摘录自http://www.kodejava.org/examples/356.html

  • 本文向大家介绍java实现将文件上传到ftp服务器的方法,包括了java实现将文件上传到ftp服务器的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java实现将文件上传到ftp服务器的方法。分享给大家供大家参考,具体如下: 工具类: 读取配置文件: 将文件上传ftp: 更多关于java相关内容感兴趣的读者可查看本站专题:《Java文件与目录操作技巧汇总》、《Java数据结构与算法教

  • 我正在尝试上传一个图像。当我从本地主机上进行时,它工作得很好,但当我发布它时,它从服务器上抛出一个错误: 当我使用此代码时: 错误为: System.io.DirectoryNotFoundException:找不到路径“d:\inetpub\vhosts\xx.com\httpdocs\images\sections\developer\clientlogo\demo.png”的一部分。在sys

  • 我使用Sabre DAV在PHP中实现了一个webdav目录,用于我的网站(Application Server Webinterface)。 对于这个网站,我现在使用C#编写了一个TCP套接字,它运行在另一个服务器上(实际上它在同一个数据中心,但从理论上讲,它在另一个半球上)。 我想连接我的网络Dav到我的套接字的FTP服务器,这意味着文件监听,下载,上传。用户只能连接到一个服务。想象一下,我的