【发布时间】:2015-06-22 19:27:32
【问题描述】:
我在运行时从屏幕截图生成 JPEG,并希望将其上传到 FTP 服务器。但是当我上传它时,它不再是有效的 jpeg。
在本例中,我只是从 HD 加载位图:
首先是一些代码:
procedure TForm13.Button1Click(Sender: TObject);
var
InBitmap: TBitmap;
JpegImage: TJpegImage;
MemoryStream: TMemoryStream;
IdFTP: TIdFTP;
begin
InBitmap := TBitmap.Create;
MemoryStream := TMemoryStream.Create;
JpegImage := TJpegImage.Create;
IdFTP := TIdFTP.Create(self);
try
InBitmap.LoadFromFile('C:\aa\test.bmp');
JpegImage.Assign(InBitmap);
JpegImage.CompressionQuality := 65;
JpegImage.SaveToStream(MemoryStream);
with IdFTP do
try
Host := <HOST>;
Username := <USER>;
Password := <PASS>;
Port := 21;
Passive := True;
Connect;
MemoryStream.Position := 0;
Put(MemoryStream, 'test.jpg');
finally
Disconnect;
end;
finally
IdFTP.Free;
JpegImage.Free;
InBitmap.Free;
MemoryStream.Free;
end;
end;
我在上传之前尝试将 JPEG 保存到文件中,它是有效的 JPG
我尝试在上传之前将 MemortStream 保存到一个文件中,它是一个有效的 JPG
但是当它上传到 FTP 服务器时,它只是一个空白的 JPG 文件,但仍然“有效”。
它不是我的 FTP 服务器,而是由托管我的域的人拥有的。这是刚刚上传的 jpg 的链接:http://fluffykids.dk/test.jpg,这是我保存到光盘的 jpeg:http://fluffykids.dk/aa.jpg。
问题:为什么我在上传 JPEG 文件后丢失了“内容”?
【问题讨论】:
标签: delphi indy indy10 delphi-xe6