Jump to content
uniGUI Discussion Forums
Fábio Matte

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

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?

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×