2016-03-17 75 views
0

我们最近在使用Mina-core 2.0.9和ftp-server-core 1.0.9传输特定映像文件时发现了一些问题。上传一个FPO文件(这是一个lowres OPI文件类型)后,该文件在FTP服务器上被截断,我们无法再打开它。其他图像文件(如标准JPEG)也没问题。我们认为根本原因可能是这些FPO文件在实际二进制数据之前以明文元数据段开始,因此FPT传输可能以不同方式执行(见下文)。这个问题可能与ASCII与二进制传输模式有关。传输问题:FTP上传后FPO JPG图像损坏

这个明文可能是原因吗?有没有其他人有类似的问题,这种文件类型?有没有办法告诉FTP服务器只使用二进制模式,或者甚至更好地设置特定文件类型的传输?我们已经尝试用FileZilla和FTP命令行工具明确设置二进制模式,但没有任何影响。

%!PS-Adobe-3.0 EPSF-3.0 
%%Creator: FullPress 
%%BoundingBox: 0 0 480 480 
%%HiResBoundingBox: 0 0 480.0000 480.0000 
%%DocumentProcessColors: Cyan Magenta Yellow Black 
%%EndComments 
%ImageData: 480 480 8 4 0 1 6 "exec" 
%BeginPhotoshop: 14 
% 3842494D040A0000000000010000 
%EndPhotoshop 
[...] 
%%BeginBinary:  255562 
exec 
s4IA>!"M;*Ddm8XA,lT0!!*&R!(-_f!<E3%!<N9&!<N<(!WiK,!WiE)"U"r1"9o#6 
"pP58"pP;=#R1M?#6kA<[email protected]%G$47+I"pbSF$OR:K$47.?^]5&S!T4":"@[email protected] 
&HGH9!<9t;*rl9A"T\W)!<E3$z!!!!"!WrQ/"pYD?$4HmP!4<@<!W`B*!X&T/"U"r. 
!!.KK!WrE*&Hrdj0gQ!W;.0\RE>10ZOeE%*6F"?A;UOtZ1LbBV#mqFa(`=5<-7:2j 
.Ps"@2`[email protected]?3D;cHat='/U/@q9._B4u!oF*)PJGBeCZK7nr5LPUeEP*;,q 
QC!u,R\HRQV5C/hWN*81['d?O\@K2f_o0O6a2lBFdaQ^rf%8R- 
+0

_“这个明文可能是原因吗?”_ - 使用什么传输模式,我确定可以从客户端或服务器日志中获取? – CodeCaster

+0

首先,我们使用ASCII模式,这是默认模式。但后来切换到二进制传输模式,问题仍然是一样的。我想知道,如果Apache FTP服务器试图变得聪明并以某种方式覆盖客户端在检测纯文本部分时设置的二进制模式。 –

+0

为了防止出现这种情况,Photoshop中的错误消息如下:“无法完成请求,因为JPEG标记段的长度太短(文件可能被截断或不完整)。” (在下载了上传的文件之后;奇怪的是,两个文件在字节级上都是相同的!) –

回答

0

我会建议,当做FTP传输总是压缩文件(即使它意味着你存储而不是压缩容器内的压缩)。这是非常有价值的,因为在目标位置解压时,解压缩工具会告知您是否在传输过程中出现问题。

如果在传输解压成功后没有错误,您可以消除传输过程并专注于您使用该文件的环境。