上传文件时文件明明已经上传了,就是在数据库没有,用FTP进空间但是c语言 ftp文件上传传了

9717人阅读
5001_辅助开发(39)
2001_编程语言(88)
20011_Java(61)
& 首先,此问题是因为FTP协议定义的数据传输方式有关,当Java FTP客户端使用ASCII传输时会发现有些上传的文件已经被损坏。
FTP协议规定了两种传输方式分别是ASCII与binary方式:
ASCII方式,这种机制指,在针对传输内容是ASCII码文本时,文件内容会被调整,有时会造成传输的文件被损坏,ASCII方式会把文件中的某些字符串位丢弃,所以不能保证文件数据的每一位都是重要的。
二进制方式,首先二进制方式保证了文件内容所有数据位都是重要的。
经过验证在传输文件类型为非文本内容的文件,使用ASCII传输方式造成copy的文件已经损坏。
示例代码(注意):
* 向远程服务器上传资源
* @param destResource 上传文件对象
* @return {true:成功;false:失败}
* @throws IOException IOException
public boolean uploadFile(File destResource) throws IOException {
InputStream ins = (new FileInputStream(destResource));
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
// ftpClient.setFileType(FTP.ASCII_FILE_TYPE);
ftpClient.changeWorkingDirectory("tmp");
boolean rtnFlag = ftpClient.storeFile(destResource.getName(), ins);
ins.close();
return rtnF
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:610234次
积分:6840
积分:6840
排名:第3478名
原创:190篇
评论:43条
文章:15篇
阅读:16631
(1)(1)(2)(1)(1)(1)(2)(1)(2)(4)(2)(2)(1)(2)(2)(3)(1)(2)(4)(6)(4)(4)(4)(1)(2)(2)(3)(1)(3)(1)(4)(1)(5)(1)(3)(3)(2)(3)(2)(4)(1)(4)(2)(1)(3)(4)(4)(4)(4)(4)(5)(2)(1)(1)(1)(4)(2)(2)(2)(2)(3)(2)(2)(4)(3)(1)(2)(4)(1)(2)(1)(1)(1)(2)(3)(4)(1)(1)(1)(1)(1)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'2015年9月 其他数据库开发大版内专家分月排行榜第三2015年7月 MS-SQL Server大版内专家分月排行榜第三2015年6月 其他数据库开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。FTP相关常见问题
必须统一使用云服务账号登录FTP。帐号详见:。
不需要。只需要云服务帐号(详见:)和密码即可。
FTP帐号和密码与云服务帐号、密码相同。即一个APP只能有一个FTP帐号。
请检查本地防火墙配置。
根据本文“使用前必读”的说明,每个帐号最多只能有3个FTP会话,请确认是否已经达到限制。
提示全文为:“Could not write to transfer socket: ECONNABORTED - Connection aborted”。
根据[[FTP简介及使用限制#2. 系统限制]的说明,磁盘配额大小有限制。此错误是由于达到磁盘上限引起的,请先清理 FTP 上的文件。
最常见的一种上传失败的原因是文件存在安全隐患。这时可以通过查看FTP用户目录下的virus.log文件确认。 如下图所示:
(1)用户目录下的文件virus.log:
(2)virus.log中记载了安全隐患:
文件被过滤是由于不符合安全规范或命名规范造成的。
根据[[FTP简介及使用限制#2. 系统限制]的说明,磁盘配额大小有限制。此错误是由于达到磁盘上限引起的,请先清理 FTP 上的文件,并检查文件大小是否已经超出空间限制。
“530 Login incorrect”的错误是指用户的账户或密码填写错误,请检查账户密码是否正确(账户查看参见)。注意ftp登录的密码不需要token,只需要固定密码。保证账户密码正确后,需要断开原有的ftp连接,重新启用ftp客户端连接一次。
如果仍失败,建议修改密码。
421错误是指提示“421 There are too many connections from your internet address”。
FTP限制了客户端的IP访问连接数量,同一时间内来自同一客户端IP的连接数不能超过3条。如果出现这样的报错,请核实是否有其他同事使用同个IP发起了FTP连接。如果没有,可以重启下网卡断开原有连接后,重新连接FTP。
这种情况一般是连接FTP网络不稳定导致连接超时。
Filezila本身有重传机制,可以通过设置重传次数和永不超时,来避免这个问题。点击filezila的“编辑”-&“设置”,进行相应的设置即可,如下图所示:
lftp的mirror是一种增量覆盖。如果文件夹内包含的文件,和需要覆盖的文件名称一样,大小一样时,就不会进行覆盖。
如果出现这种情况,建议单独对这种文件进行上传,或者在上传前先删除FTP原有的文件,再进行上传。
virus.log文件是FTP用于记录用户的文件上传记录,审计用户是否有违规或上传不符合FTP要求的文件,如检查是否有包含test名称的文件等,不会影响用户的文件上传。
该提示是指上传的文件名不符合规则。Ftp目前不允许上传包含test的文件名和中文名称的文件名。
目前FTP只会保留最近2天上传的文件,每天凌晨会定时删除超过2天没有操作的文件。
FTP的上传下载速度都限制小于2M/s。
应用的目录总文件大小要求不能超过3G。应用目录过大会影响FTP性能,腾讯开放平台如果检测到超出限制的目录情况,会进行清理操作,以保证FTP性能。
通过FTP上传文件时,必须将文件拖动到远程站点的相应文件夹里:
要导入到CDB的数据文件,必须拖动到远程站点的cdb文件夹下;
要导入到CMEM的数据文件,必须拖动到远程站点的cmem文件夹下。
支持。只需要修改下lftp配置文件即可。
使用以下命令打开配置文件lftp.conf:
# vim /etc/lftp.conf
在配置文件lftp.conf里面添加如下内容,保存后即可:
set xfer:clobber on}

我要回帖

更多关于 c语言 ftp文件上传 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信