[list]
FTP上传文件长度为空的问题
这个问题是没有调用FTPClient的ftp.completePendingCommand();
原来在一个文件传输过程中会产生两个Reply:
150 Opening BINARY mode data connection for 上传文件的名字
226 Transfer complete.
而FTPClient自动消费掉一个,于是解析Reply就发生了错位, 下一个命令的会解析266那条. 接下来的命令都不是解析自己的Reply而是前一次命令的. 所有在PASV命令的Reply码就不对了, FTPClient也就不会执行接下来本应该执行RETR命令.
所以有时候当FTP传输文件的时候是没问题的(一般是第一次),后面的就会发生错位了。故文件传输后为0.
而FTPClient的completePendingCommand()方法就是用来把前面传输完毕的Reply清空的。
(因为我是使用SPRING来管理FtpServer这个类的,是单例,所以有上面的问题,如果传输一次就NEW一下,估计没这个问题。)
伪代码如下
try{
os=ftp.storeFileStream(File.separatorChar+folderName+fileName);
LogFactory.log("上传文件"+fileName+"至FTP服务器", Level.DEBUG, null);
if(os!=null){
int bytesRead = 0;
byte[] buffer = new byte[1024];
while((bytesRead=fileInputStream.read(buffer,0,1024))!=-1){
System.out.println("图片长度"+bytesRead);
os.write(buffer,0,bytesRead);
os.flush();
}
}
}catch(){
}finally{
//先关文件上传流
fileInputStream.close();
//再关FTP输入流
os.close();
//一定要加,否则上传至FTP服务器的文件可能长度为0
ftp.completePendingCommand();
}
[/list]
分享到:
相关推荐
在这个"FTP图片服务器实例"中,我们很可能会探讨如何建立一个基于FTP服务的系统,专门用于存储和检索图片。源码和工具的标签暗示我们将深入到实际代码实现和可能使用的工具。 FTP服务器的构建通常涉及到以下几个...
以上就是使用C# WinForm实现FTP图片上传、浏览和删除操作的基本步骤。在实际项目中,可能还需要考虑其他因素,如进度条显示、多文件上传、错误重试策略等。这个"UploadIMgToFTP"的项目代码应该包含了这些功能的实现...
在IT行业中,图片上传到FTP(File Transfer Protocol)服务器是一个常见的任务,特别是在网站开发、移动应用和各种在线服务中。这个“图片上传FTP服务器”的demo提供了实现这一功能的实例,让我们详细了解一下相关...
在探讨如何使用Java实现FTP(File Transfer Protocol)服务器之前,我们首先需要理解FTP的基本概念及其工作原理。FTP是一种用于在网络上进行文件传输的标准协议,它支持上传(Upload)和下载(Download)功能,是...
通过以上步骤,你就搭建了一个使用Nginx作为图片访问服务,FTP作为图片上传服务的图片服务器。用户可以通过FTP上传图片,然后通过Nginx访问这些图片。这样的架构既保证了上传的便捷性,又提供了高效的图片访问性能。
在构建分布式场景下的图片服务器时,使用`nginx`与`ftp`相结合是一个常见的解决方案。`nginx`以其高性能、高并发的特性,常被用作反向代理和负载均衡器,而`ftp`(File Transfer Protocol)则是一种标准的网络协议,...
### 康耐视Image FTP保存图片与SNTP服务器时间同步详解 #### 一、概述 在康耐视In-Sight视觉系统中,用户经常会遇到图像通过FTP保存至指定目录时达到存储上限导致早期文件被覆盖的问题。为了克服这一限制,本文档...
当你使用FTP客户端,如XFTP,向FTP服务器上传包含中文文件名的图片时,可能会遇到中文显示为乱码的问题。这个问题通常与字符编码设置有关,因为FTP在传输文件名时可能不自动处理非ASCII字符,如中文字符。 1. FTP...
本教程将详细介绍如何将图片传输到FTP服务器以及如何在FTP服务器上显示这些图片。 首先,我们需要理解FTP的基本工作原理。FTP使用客户端-服务器模型,其中客户端(你的计算机)连接到服务器并发送文件请求。在传输...
6. **错误处理**:为可能出现的错误如网络问题、文件过大或FTP连接失败等设置适当的错误处理机制。 ### 安全注意事项 - **加密传输**:尽管FTP支持FTPS(FTP over SSL/TLS)或SFTP(SSH File Transfer Protocol)以...
在本文中,我们将深入探讨如何使用C# WinForm应用程序实现FTP(文件传输协议)功能,以便进行图片的上传和下载。FTP是一种广泛用于在互联网上交换文件的标准协议,而C# WinForm则提供了用户友好的图形界面来实现这一...
这里可以根据远程图片地址,获取到图片并存储到本地或者本地服务器中,也可以并发把图片存储到本地数据库中
在Linux中配置FTP服务器,通常使用vsftpd(Very Secure FTP Daemon)或者ProFTPD这样的开源软件。以下是一个简化的配置步骤: 1. 安装FTP服务器软件,如在Red Hat Linux 9.0中,可以使用`yum install vsftpd`命令。...
在这个场景中,我们需要关注的是如何使用Servlet来上传单一图片到FTP服务器。 FTP(File Transfer Protocol)是一种用于在互联网上传输文件的标准协议。为了实现这个功能,我们需要使用Java的`java.net`和`java.io`...
2. **FTP图片上传**: FTP服务器支持文件的上传,包括图片。用户可以使用FTP客户端,如FileZilla、WinSCP或命令行工具`ftp`进行文件传输。在命令行中,可以使用`put`命令上传本地文件到FTP服务器。为了实现图片上传...
通过以上步骤,你可以成功配置 Destoon7 使用远程 FTP 图片服务器,实现图片资源的高效管理和分发。这种设置对大型企业网站尤其有用,因为它可以优化网站性能,提高用户体验,同时降低主服务器的负载。如果你遇到...
描述中的“方法截图”可能是指包含在压缩包中的图片文件,它们可能展示了如何配置和使用这个FTP服务器的步骤。一般来说,配置FTP服务器需要以下步骤: 1. **选择FTP软件**:首先,你需要一个FTP服务器软件,比如...
创建一个简单的FTP图片服务器,首先需要选择一个合适的编程语言,如Python、C++或Java,然后集成FTP服务器库。例如,Python有pyftpdlib库,可以快速搭建FTP服务器。开发流程如下: - 配置服务器的基本信息,如监听...
批处理FTP服务器上图片上传下载功能是通过编写批处理脚本来实现自动化操作的过程,它可以极大地提高工作效率,避免了手动重复连接和操作的繁琐。在这个场景中,我们需要在两台FTP服务器之间进行文件(包括图片)的...
3. **配置端口和防火墙**:FTP服务器默认使用20号端口(数据连接)和21号端口(控制连接)。确保这些端口在服务器的防火墙中开放,以便外部客户端能够连接。 4. **启用SSL/TLS加密**:为了增强安全性,可以启用FTP ...