안녕하세요.
activeX로 원격 뷰어개발중에 에로사항이 있어 문의 드립니다..
150장정도의 이미지를 IdFtp를 이용해서 다운받아서,
저장후 보여주는 겁니다. 테스트 결과 50장정도는 실행이 됩니다.
근데 50장이 넘어가면 timeout이 걸립니다. IdFtp를 타임아웃시간을 변경
이 불가능한지요. 50장다운받는데 약 30초가량 걸립니다. activeX폼이 뜨는
30초가량 걸린다는 얘기죠. 좀더 빠른 방법이 없는지 알고 싶습니다.
또, 만일 이미지를 DB에 저장후 하게 되면 좀더 빨라질지도 궁금합니다.
그럼 수고들 하세요
==== 이미지 다운로드부분 =======
var
cnt : integer;
scnt : string;
JPG_SIZE : array[1..150] of integer;
JPG_NAME : string;
JPG_PAGE : integer;
begin
IdFTP1.Connect(True);
IdFTP1.ChangeDir('/www/demox/books/gutari');
JPG_IMG := TJPEGImage.Create;
MEM := TMemorystream.Create;
JPG_PAGE := 1;
for cnt := 1 to 150 do
begin
scnt := inttostr(cnt);
if length(scnt) = 1 then
begin
scnt := '00' + scnt;
end
else if length(scnt) = 2 then
begin
scnt := '0' + scnt;
end
else if length(scnt) = 3 then
begin
scnt := scnt;
end;
JPG_NAME := scnt + '.jpg';
IdFTP1.Get(JPG_NAME,MEM);
JPG_SIZE[cnt] := IdFTP1.Size(JPG_NAME);
end;
===== 이미지 뷰 ==========
IMG_SIZE :=0;
JPG_PAGE := JPG_PAGE + 1;
if JPG_PAGE <= 150 then
begin
for i:=1 to JPG_PAGE -1 do
begin
IMG_SIZE := IMG_SIZE + JPG_SIZE[i];
end;
MEM.Position := IMG_SIZE;
JPG_IMG.LoadFromStream(MEM);
Image1.Picture.Graphic := JPG_IMG;
end
else
begin
JPG_PAGE := 150;
showmessage('마지막페이지입니다.');
end;