Jump to content

PDF sendo gravado na Pasta C: \Windows\SysWOW64 (Resolvido / Solved)


Fábio Matte

Recommended Posts

Boa tarde, eu estou desenvolvendo uma aplicação com hospedagem no IIS, e neste como todos, gero relatorios em PDF usando o FastReports.

 

Uso esse código para gerar o PDF.     

NomeRPT.PrepareReport(True);
ArqPDF := NomeRelPDF+'_'+FormatDateTime('ddmmyyyy_hhmmss.zzz',Now)+'.pdf';
PDFExport.FileName := ArqPDF;
PDFExport.DefaultPath := UniServerModule.LocalCachePath;
PDFExport.ShowDialog := false;
PDFExport.ShowProgress := False;
NomeRPT.Export(Self.PDFExport);
NomeRPT.PreviewPages.SaveToFile(ArqPDF);
frmRelatorios_Movimento.UniPDFFrame1.PdfURL := UniServerModule.LocalCacheURL + ArqPDF; // Displayed on UniURLFrame
frmRelatorios_Movimento.ShowModal;

 

Ele está gerando normalmente o arquivo na Cache do Servidor (pasta criada pelo Unigui na raíz da aplicação), porém, ele cria o mesmo arquivo dentro da C:\Windows\SysWOW64, só que isso vai enchendo a pasta de sistemas com arquivos PDF e eu não consigo encontrar onde é o problema que o mesmo salva uma copia do arquivo na pasta de sistema.

 

Alguém já viu algo parecido com isso?

Link to comment
Share on other sites

Tenho experiência com dll ISAPI de servidores REST mas não com unigui, porém, creio que se comportam do mesmo jeito.

 

Se você usar Paramstr(0) em qualquer projeto ISAPI, ele vai lhe retornar , no caso do IIS, a pasta do executável w3p.exe que, no seu caso, é C:\Windows\SysWOW64. Tente substituir

 

isso :  PDFExport.DefaultPath := UniServerModule.LocalCachePath;

por isso : PDFExport.DefaultPath := StringReplace(ExtractFilePath(GetModuleName(HInstance)),'\\?\','',[rfReplaceAll,rfIgnoreCase]) + '\temp\'. //Por exemplo

Link to comment
Share on other sites

Obrigado Andriws Luna, sua dica me ajudou, pois realmente ele tava retorna ao lugar do w3p.exe, e o que eu fiz foi, mudar a forma com que ele interpretava o lugar onde o arquivo era salvo.

isso :  PDFExport.DefaultPath := UniServerModule.LocalCachePath;

por isso PDFExport.FileName      := UniServerModule.NewCacheFileUrl(False, ".pdf", '', '', AUrl, True);

 

Obrigado, 

Resolvido

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...