Fábio Matte Posted January 26, 2018 Share Posted January 26, 2018 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 More sharing options...
Andriws Luna Posted January 27, 2018 Share Posted January 27, 2018 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 More sharing options...
Fábio Matte Posted January 29, 2018 Author Share Posted January 29, 2018 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 More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now