三层上传文件时,第二次上传会报内存错误 |
尚未結案
|
踏雪冬思
一般會員 發表:6 回覆:2 積分:1 註冊:2007-10-08 發送簡訊給我 |
三层上传文件时,第一次上传正常,第二次上传客户端会报内存错误,第三次上传又正常,请帮我看看是什么原因?
服务端代码: [code delphi] function TServerMethods1.PutFile(AfileName,SaveFolder: string; Stream: TStream): Boolean; const //上传 BufSize = $F000; var Buffer: TBytes; ReadCount: Integer; FS: TFileStream; begin if not DirectoryExists(AppPath SaveFolder) then CreateDir(AppPath SaveFolder); try FS := TFileStream.Create(AppPath SaveFolder AfileName, FmCreate); if Stream.Size = -1 then // 大小未知则一直读取到没有数据为止 begin SetLength(Buffer, BufSize); repeat ReadCount := Stream.Read(Buffer[0], BufSize); if ReadCount > 0 then FS.WriteBuffer(Buffer[0], ReadCount); if ReadCount < BufSize then break; until ReadCount < BufSize; end else // 大小已知则直接复制数据 FS.CopyFrom(Stream, 0); Result := True; FMan.Insertlog('客户端上传文件成功:' AppPath AfileName); Except FMan.Insertlog('客户端上传文件失败:' AppPath AfileName); Result := False; end; FreeAndNil(FS); end; [/code] 客户端上传调用代码: [code delphi] Function TDtM.PutFile(faName,toName: String):Boolean; var aSeream:TStream; begin try aSeream:=TStream.Create; aSeream:=TfileStream.Create(faName,fmShareDenyNone); Result:=aiapp.PutFile(toName,'file\',aSeream); //这一行在第二次上传时会报内存错误。 Except end; FreeAndNil(aSeream); end; [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |