精华内容
下载资源
问答
  • ftp上传文件失败
    千次阅读
    2019-01-14 17:26:16

    在用phpstrom做代码自动上传时(代码自动上传使用的是ftp方式),遇到过文件上传失败的情况,通过查阅相关资料,问题得到解决,遇到问题,主要检查以下两个方面:

    1、ftp用户对当前文件或者目录是否有操作权限,无权限会报权限错误;

    2、ftp服务器磁盘空间是否已经用完,用完后会导致上传/修改失败;

    更多相关内容
  • linux使用 FTP上传文件失败

    千次阅读 2020-06-29 13:11:45
    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;...import org.apache.commons.net.ftp.FTP; import

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.MalformedURLException;

    import org.apache.commons.net.ftp.FTP;
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPFile;
    import org.apache.commons.net.ftp.FTPReply;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    public class FtpUtil {
    /**
    * 引用logger
    */
    public static final Logger logger = LoggerFactory.getLogger(FtpUtil.class);
    //ftp服务器地址
    private String hostname = “1.1.1.1”;
    //ftp服务器端口号默认为21
    private Integer port = 21 ;
    //ftp登录账号
    private String username = “”;
    //ftp登录密码
    private String password = “”;

    private FTPClient ftpClient = null;
    
    public FtpUtil(){
    	
    }
    
    public FtpUtil(String hostname,Integer port,String username,String password){
    	this.hostname=hostname;
    	this.port=port;
    	this.username=username;
    	this.password=password;
    }
    
    /**
     * 初始化ftp服务器
     */
    public void initFtpClient() {
        ftpClient = new FTPClient();
        ftpClient.setControlEncoding("utf-8");
        try {
        	logger.info("connecting...ftp服务器:"+this.hostname+":"+this.port); 
            ftpClient.connect(hostname, port); //连接ftp服务器
            ftpClient.login(username, password); //登录ftp服务器
            int replyCode = ftpClient.getReplyCode(); //是否成功登录服务器
            if(!FTPReply.isPositiveCompletion(replyCode)){
                logger.info("connect failed...ftp服务器:"+this.hostname+":"+this.port); 
            }
            logger.info("connect success...ftp服务器:"+this.hostname+":"+this.port); 
        }catch (MalformedURLException e) { 
        	logger.error("initFtpClient方法异常",e);
        }catch (IOException e) { 
        	logger.error("initFtpClient方法异常",e);
        } 
    }
    
    /**
    * 上传文件
    * @param pathname ftp服务保存地址
    * @param fileName 上传到ftp的文件名
    *  @param originfilename 待上传文件的名称(绝对地址) * 
    * @return
    */
    public boolean uploadFile( String pathname, String fileName,String originfilename){
        boolean flag = false;
        InputStream inputStream = null;
        try{
            logger.info("开始上传文件");
            inputStream = new FileInputStream(new File(originfilename));
            initFtpClient();
            ftpClient.enterLocalPassiveMode();
            ftpClient.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
            ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
            if(!pathname.equals("")){
            	 CreateDirecroty(pathname);
                 ftpClient.makeDirectory(pathname);
                 ftpClient.changeWorkingDirectory(pathname);
            }
            ftpClient.storeFile(fileName, inputStream);
            inputStream.close();
            ftpClient.logout();
            flag = true;
            logger.info("上传文件成功");
        }catch (Exception e) {
            logger.info("上传文件失败");
        	logger.error("uploadFile方法异常",e);
        }finally{
            if(ftpClient.isConnected()){ 
                try{
                    ftpClient.disconnect();
                }catch(IOException e){
                	logger.error("uploadFile方法异常",e);
                }
            } 
            if(null != inputStream){
                try {
                    inputStream.close();
                } catch (IOException e) {
                	logger.error("uploadFile方法异常",e);
                } 
            } 
        }
        return flag;
    }
    /**
     * 上传文件
     * @param pathname ftp服务保存地址
     * @param fileName 上传到ftp的文件名
     * @param inputStream 输入文件流 
     * @return
     */
    public boolean uploadFile( String pathname, String fileName,InputStream inputStream){
        boolean flag = false;
        try{
            logger.info("开始上传文件");
            initFtpClient();
            ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
            CreateDirecroty(pathname);
            ftpClient.makeDirectory(pathname);
            ftpClient.changeWorkingDirectory(pathname);
            ftpClient.storeFile(fileName, inputStream);
            inputStream.close();
            ftpClient.logout();
            flag = true;
            logger.info("上传文件成功");
        }catch (Exception e) {
            logger.info("上传文件失败");
        	logger.error("uploadFile方法异常",e);
        }finally{
            if(ftpClient.isConnected()){ 
                try{
                    ftpClient.disconnect();
                }catch(IOException e){
                 	logger.error("uploadFile方法异常",e);
                }
            } 
            if(null != inputStream){
                try {
                    inputStream.close();
                } catch (IOException e) {
                 	logger.error("uploadFile方法异常",e);
                } 
            } 
        }
        return true;
    }
    //改变目录路径
     public boolean changeWorkingDirectory(String directory) {
            boolean flag = true;
            try {
                flag = ftpClient.changeWorkingDirectory(directory);
                if (flag) {
                  logger.info("进入文件夹" + directory + " 成功!");
    
                } else {
                    logger.info("进入文件夹" + directory + " 失败!开始创建文件夹");
                }
            } catch (IOException ioe) {
             	logger.error("changeWorkingDirectory方法异常",ioe);
            }
            return flag;
        }
    
    //创建多层目录文件,如果有ftp服务器已存在该文件,则不创建,如果无,则创建
    public boolean CreateDirecroty(String remote) throws IOException {
        boolean success = true;
        String directory = remote + "/";
        // 如果远程目录不存在,则递归创建远程服务器目录
        if (!directory.equalsIgnoreCase("/") && !changeWorkingDirectory(new String(directory))) {
            int start = 0;
            int end = 0;
            if (directory.startsWith("/")) {
                start = 1;
            } else {
                start = 0;
            }
            end = directory.indexOf("/", start);
            String path = "";
            String paths = "";
            while (true) {
                String subDirectory = new String(remote.substring(start, end).getBytes("GBK"), "iso-8859-1");
                path = path + "/" + subDirectory;
                if (!existFile(path)) {
                    if (makeDirectory(subDirectory)) {
                        changeWorkingDirectory(subDirectory);
                    } else {
                        logger.info("创建目录[" + subDirectory + "]失败");
                        changeWorkingDirectory(subDirectory);
                    }
                } else {
                    changeWorkingDirectory(subDirectory);
                }
    
                paths = paths + "/" + subDirectory;
                start = end + 1;
                end = directory.indexOf("/", start);
                // 检查所有目录是否创建完毕
                if (end <= start) {
                    break;
                }
            }
        }
        return success;
    }
    

    //判断ftp服务器文件是否存在
    public boolean existFile(String path) throws IOException {
    boolean flag = false;
    FTPFile[] ftpFileArr = ftpClient.listFiles(path);
    if (ftpFileArr.length > 0) {
    flag = true;
    }
    return flag;
    }
    //创建目录
    public boolean makeDirectory(String dir) {
    boolean flag = true;
    try {
    flag = ftpClient.makeDirectory(dir);
    if (flag) {
    logger.info(“创建文件夹” + dir + " 成功!");

            } else {
                logger.info("创建文件夹" + dir + " 失败!");
            }
        } catch (Exception e) {
        	logger.error("makeDirectory方法异常",e);
        }
        return flag;
    }
    
    /** * 下载文件 * 
    * @param pathname FTP服务器文件目录 * 
    * @param filename 文件名称 * 
    * @param localpath 下载后的文件路径 * 
    * @return */
    public  boolean downloadFile(String pathname, String filename, String localpath){ 
        boolean flag = false; 
        OutputStream os=null;
        try { 
            logger.info("开始下载文件");
            initFtpClient();
            //切换FTP目录 
            ftpClient.changeWorkingDirectory(pathname); 
            FTPFile[] ftpFiles = ftpClient.listFiles(); 
            for(FTPFile file : ftpFiles){ 
                if(filename.equalsIgnoreCase(file.getName())){ 
                    File localFile = new File(localpath + "/" + file.getName()); 
                    os = new FileOutputStream(localFile); 
                    ftpClient.retrieveFile(file.getName(), os); 
                    os.close(); 
                } 
            } 
            ftpClient.logout(); 
            flag = true; 
            logger.info("下载文件成功");
        } catch (Exception e) { 
            logger.info("下载文件失败");
            logger.error("downloadFile方法异常",e);
        } finally{ 
            if(ftpClient.isConnected()){ 
                try{
                    ftpClient.disconnect();
                }catch(IOException e){
                	 logger.error("downloadFile方法异常",e);
                }
            } 
            if(null != os){
                try {
                    os.close();
                } catch (IOException e) {
                	 logger.error("downloadFile方法异常",e);
                } 
            } 
        } 
        return flag; 
    }
    
    /** * 删除文件 * 
    * @param pathname FTP服务器保存目录 * 
    * @param filename 要删除的文件名称 * 
    * @return */ 
    public boolean deleteFile(String pathname, String filename){ 
        boolean flag = false; 
        try { 
            logger.info("开始删除文件");
            initFtpClient();
            //切换FTP目录 
            ftpClient.changeWorkingDirectory(pathname); 
            ftpClient.dele(filename); 
            ftpClient.logout();
            flag = true; 
            logger.info("删除文件成功");
        } catch (Exception e) { 
            logger.info("删除文件失败");
            logger.error("deleteFile方法异常",e);
        } finally {
            if(ftpClient.isConnected()){ 
                try{
                    ftpClient.disconnect();
                }catch(IOException e){
                	  logger.error("deleteFile方法异常",e);
                }
            } 
        }
        return flag; 
    }
    
    public static void main(String[] args) {
        FtpUtil ftp =new FtpUtil(); 
        ftp.uploadFile("data", "key.fst", "D://key.fst");
        //ftp.downloadFile("ftpFile/data", "123.docx", "F://");
        //ftp.deleteFile("ftpFile/data", "123.docx");
        logger.info("ok");
    }
    

    }

    展开全文
  • ftp上传文件失败的可能原因

    千次阅读 2020-11-19 15:58:11
    【现象】:上传含有中文符号的文件会上传失败。 【解决方法】:将文件名中的中文符号修改为英文符号即可上传成功。(如果上传的文件名中没有中文符号也失败,可以试试将文件名修改为短一点的,如:11,待上传成功后...

    1、文件编码问题引起

    【现象】:上传含有中文符号的文件会上传失败。
    【解决方法】:将文件名中的中文符号修改为英文符号即可上传成功。(如果上传的文件名中没有中文符号也失败,可以试试将文件名修改为短一点的,如:11,待上传成功后再修改文件名称)

    2、ftp服务器内存不足

    【现象】:上传后文件大小为0或者小于实际文件大小。
    【解决方法】:给ftp所在服务器进行扩容。

    展开全文
  • linux上ftp上传文件失败

    千次阅读 2019-03-13 21:06:46
    有个小功能模块做一个ftp上传文件,我在本地搭建了一个ftp服务器是windows的 , 然后上传文件也没有问题, 但是今天在切到正式环境的时候文件就上传不上去了,debug发现ftp是连接上, 就是文件传不成功。 最后找到...

    ftp上传windows成功,服务器换成linux就失败

    有个小功能模块做一个ftp上传文件,我在本地搭建了一个ftp服务器是windows的 , 然后上传文件也没有问题,
    但是今天在切到正式环境的时候文件就上传不上去了,debug发现ftp是连接上, 就是文件传不成功。

    最后找到原因: 调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。

    ftpClient添加如下设置:

    ftpClient.enterLocalPassiveMode();
    

    在这里插入图片描述
    到这问题解决。

    补充:

    还有一个问题就是,如果linux 服务器上的ftp 用户 文件如果没有删除权限,就不能覆盖,导致问题就是,同名文件只能上传一次,第二次上传就会报错。 这就是文件权限的问题了。

    展开全文
  • FTP文件上传失败Java

    2021-02-13 01:01:06
    我在Java项目中使用Apache的FTPClient和FTPServer库.服务器和客户端在同一台机器上.我的FTPServer应该是本地服务器,与Internet无关.我可以从客户端连接到FTPServer(我得到230作为回复代码),但我似乎无法做任何事情....
  • FTP上传文件失败

    千次阅读 2018-03-23 16:05:20
    最近做一个项目需要将文件上传FTP指定目录,然后发现项目部署在tomcat就可以成功,部署在weblogic就失败,在网上找了很多原因一直没有解决。boolean isSuccee = ftp.storeFile(fileName, in);这里一直返回false...
  • 以及怎么排查php使用ftp函数上传文件失败的原因?因为系统重构实现均衡负载,网站程序与文件服务器不在一台机子上。于是,程序在上传文件的同时就要将文件上传到文件服务器上。这里涉及到windows主机上传到linux主机...
  • 易语言API实现FTP上传

    2020-07-20 02:23:34
    易语言API实现FTP上传源码,API实现FTP上传,InternetOpen,InternetConnect,InternetCloseHandle,FtpFindFirstFile,InternetFindNextFile,FtpSetCurrentDirectory,FtpCreateDirectory,FtpGetCurrentDirectory,...
  • 主要介绍了Android FTP服务器上传文件攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • FTP上传下载失败文件为空

    千次阅读 2021-07-26 18:33:08
    这两天做了一个ftp文件上传和下载功能...1、上传时调用FTPClient的storeFile()方法没有成功上传文件到服务器。 有人说要先调用FTPClient的enterLocalPassiveMode()方法,试过之后还是不成功,后来看网上有人说文件名需
  • java ftp上传失败怎么办?最近做一个项目需要将文件上传至FTP指定目录,然后发现项目部署在tomcat就可以成功,部署在weblogic就失败,在网上找了很多原因一直没有解决。boolean isSuccee = ftp.storeFile(fileName, ...
  • 修改指定文件夹的权限:chmod -R 777 文件绝对路径 chmod -R 777 /var/xxx/xxx ...如果还不行,则看一下ftp的配置文件 vim /etc/vsftpd/vsftpd.conf 全局配置 local_enable=YES write_enable=YES ...
  • 今天测试上传文件ftp 服务器时,上传不过去。其中遇到了假死问题,已经解决了。解决以后,就发现在这行代码,一直返回 false 。flag = ftpClient.storeFile(new String(remote.getBytes("UTF-8"),"iso-8859-1"), ...
  • ftp无法上传文件的原因

    千次阅读 2021-08-06 08:22:37
    前段时间小编再上传ftp文件的时候,忽然发现有些文件编辑后无法上传,下方一直显示传输失败。这时就需要ftp客户端来设置文件夹权限。如下图所示,找到相应的文件,右击,找到属性然后找到文件和文件夹下的写入和执行...
  • QT FTP上传文件

    千次阅读 2019-08-06 13:58:07
    QT FTP上传文件两台电脑通过网线建立本地连接,保证网关在同一段;服务器端打开ftp;客户端网页测试远程访问;客户端cmd测试远程访问;客户端程序测试远程访问。 两台电脑通过网线建立本地连接,保证网关在同一段; ...
  • FTP上传失败报错解决

    千次阅读 2021-12-14 20:45:08
    An error occurred copying a file to the FTP server.Make sure you have permission to put file on the server. Details: 200 Switching to Binary mode. 227 Entering Passive Mode(***************) 553 ...
  • try { Stream strm = reqFTP.GetRequestStream(); contentLen = fs.Read(buff, 0, buffLength); while (contentLen !... strm.Write(buff, 0, contentLen);... 大多是电脑是没问题,偶尔有个别电脑上传失败
  • xftp上传文件失败

    2021-01-20 14:56:34
    我就很奇怪,都是ftp协议,怎么就winscp能传输成功。再者,我原先传文件的时候都是正常的。因此,我断定不是传输软件的问题。我使用的不是root用户,权限方面是否受到限制?毕竟,我上传的目录不是home目录。 问题...
  • 我想java实现一个文件上传的类,但现在如果客户端上传一个文件时,如果在服务器上相同的路径下如果没有该文件上传不成功,该怎么办啊,希望大大们帮帮忙小弟感激不尽^_^。代码如下:package com.test.fileup;...
  • ftp上传文件失败,大小始终为0

    千次阅读 2016-08-25 15:09:25
    主机:win7 虚拟机:ubuntu14.04 ubuntu中安装vsftpd,配置writing_enable=...上传文件大小始终为0。原因:磁盘空间被占满,没有空间写入: df -lh 查看磁盘空间。 解决:删除部分不用文件或日志文件,释放空间。
  • java操作远端ftp文件失败

    千次阅读 2022-03-21 09:30:56
    java操作远端ftp文件失败问题: 问题: 使用hutool的ftp工具类上传文件
  • FTP文件上传失败,提示553 Can't open that file: Permission denied 解决方法: 目录的所属组,所属用户属于root,所以导致FTP无法上传,修改组和所属用户为www即可。 chown -fR www ./* chgrp -fR www ./* ...
  • * @param ftpFileName 上传文件名称 * @throws Exception */ public void ftpUploadByText(String content ,String uploadDir,String ftpFileName) throws Exception{ try { ftpClient = this.login(); //...
  • 我设法将文件上传到我的网站,但是我遇到的问题是,当您转到URL时,它显示为损坏的图像.这是我的代码:private void CaptureFullScreen(){string file = DateTime.Now.ToString("ddmmyyyyhhmmss") + ".jpg";string fi.....
  • ftp上传失败,应该是目录权限问题 注意安装的文件夹位置,文件夹权限 用ftp查看文件夹快点
  • 主要介绍了springboot以FTP方式上传文件到远程服务器,需要的朋友可以参考下
  • 今天在处理linux中的服务上传window的ftp服务器的时候发现ftp链接和上传文件失败。 链接时的报错: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socket...
  • FTP文件上传/下载失败

    千次阅读 2017-10-16 15:31:53
    在开发过程中难免遇到需要对FTP文件上传和下载,在操作FTP的过程中,有几点需要注意: FTP连接方式 FTP连接分为主动方式和被动方式两种,在连接FTP的过程中,要注意需要连接的FTP的连接属性,一般默认都是被动...
  • php 封装了个ftp上传类,其中upload方法调用 ftp_put上传图片文件,之前的windows服务器了2年多没有问题,前阵子换了linux服务器后一直没有注意这个问题,最近客户端有反应图片上传不成功。 从接口接收到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,488
精华内容 14,995
关键字:

ftp上传文件失败