1,317
社区成员




//---下载服务器版本的文件
bool __fastcall ProgBase::DownloadServFile2(TIdHTTP *IdHTTP,TFileInfo FileInfo,String SavePathName)
{
TMemoryStream *FileStm;
try {
Json::Value JsonData;
JsonData =UTF8Encode(FileInfo.FileName).c_str();
UTF8String strReq =_jReq.CreateJsonReq(L"Hello",L"World",1,JsonData);
String strUrl =String(_Config.szUrl)+L"strJson="+HTTPEncode(strReq);
FileStm =new TMemoryStream() ;
IdHTTP->Get(strUrl,FileStm);
if (FileStm->Size ==FileInfo.ByteSize) { //---下载成功
_file.CreateFileW(ExtractFilePath(SavePathName));
if (!DirectoryExists(ExtractFilePath(SavePathName))) { //如果文件夹不存在,创建
if (!ForceDirectories(ExtractFilePath(SavePathName))) {
_LastErrS =FileInfo.FileName+L" 文件保存失败:文件夹"+ExtractFilePath(SavePathName)+",创建失败";
FileStm->Free();
return false;
}
}
FileStm->SaveToFile(SavePathName);
delete FileStm;
return true;
}else{ //---下载失败
_LastErrS =FileInfo.FileName+L" 文件下载失败,请查看服务器日志";
delete FileStm;
return false;
}
} catch (Exception &e) {
_LastErrS =e.Message;
delete FileStm;
return false;
}
}