Jump to content


Photo

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

PDF IIS cache unigui SystemWOW64 PDFExport

  • Please log in to reply
2 replies to this topic

#1 fabiomatte

fabiomatte

    Member

  • Members
  • PipPip
  • 13 posts

Posted 26 January 2018 - 03:50 PM

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?


  • 0

#2 Andriws Luna

Andriws Luna

    Newbie

  • Members
  • Pip
  • 6 posts

Posted 27 January 2018 - 01:38 AM

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


  • 0

#3 fabiomatte

fabiomatte

    Member

  • Members
  • PipPip
  • 13 posts

Posted 29 January 2018 - 12:08 PM

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


  • 0





Also tagged with one or more of these keywords: PDF, IIS, cache, unigui, SystemWOW64, PDFExport

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users