Caros, por esses dias precisei gerar um arquivo PDF para o usuário baixar, mas enfrentei um problema. Ao gerar o PDF diretamente no navegador utilizando BinaryWrite e alterando o ContentType da página, encontrei muitos erros devido às configurações em navegadores distintos.
Para não depender do navegador do usuário, resolvi gerar os arquivos em uma determinada pasta no servidor, redirecionar a página para o usuário baixar o arquivo e executar uma rotina que apagasse os arquivos de tempos em tempos.
Desenvolvi essa página ASP onde determinei em constantes o “tempo de vida” dos arquivos. É necessário agendar essa rotina para ser executada no servidor.
Segue abaixo o código ASP utilizado:
<%
´Constante que determina o "tempo de vida" dos arquivos
const TEMPO_DE_VIDA = 20
´Constante que determina a unidade do "tempo de vida"
´yyyy - Year´
´q - Quarter
´m - Month
´y - Day of year
´d - Day
´w - Weekday
´ww - Week of year
´h - Hour
´n - Minute
´s - Second
const TEMPO_DE_VIDA_UN = "n"
´variável para
dim pasta
pasta = Server.MapPath("./arquivos/")
´Declara o File System Object
set fso = server.CreateObject("Scripting.FileSystemObject")
´GetFolder retorna a pasta passada por parâmetro
set fsoP = fso.getFolder(pasta)
´fsoP.files contem todos os arquivos da pasta
for each arq in fsoP.files
´Escreve na tela o nome do arquivo e sua data de criação.
Response.Write(arq.name&" - criado em "&arq.dateCreated&".<br />")
´Caso o "tempo de vida" do arquivo tenha passado o tempo permitido, o arquivo é deletado
if DateDiff(TEMPO_DE_VIDA_UN,arq.dateCreated,now) > TEMPO_DE_VIDA then
´Escreve na tela o nome do arquivo deletado
Response.Write(arq.name&" deletado.<br/>")
´Deleta o arquivo
arq.Delete
end if
next
´Libera variáveis da memória
set pasta = nothing
set arq = nothing
set fsoP = nothing
set fso = nothing
%>
Seguem alguns dos atributos do file (arq) que podem ajudá-los no critério para exclusão dos arquivos.
Attributes (pode ser setado)
Atributos do arquivo. Pode ser um ou mais dos seguintes valores:
- 0 = Arquivo normal
- 1 = Arquivo somente leitura
- 2 = Arquivo oculto
- 4 = Arquivo de sistema
- 16 = Pasta ou diretório
- 32 = Arquivos alterados desde o último backup
- 1024 = Link ou atalho
- 2048 = Arquivo compactado
DateCreated
Retorna a data e a hora em que o arquivo foi criado.
DateLastAccessed
Retorna a data e a hora em que o arquivo foi acessado.
DateLastModified
Retorna a data e a hora da última vez que o arquivo foi modificado.
Drive
Retorna a letra do drive em que o arquivo está.
Name (pode ser setado)
Nome do arquivo.
ParentFolder
Retorna o caminho complete da pasta onde o arquivo está.
Path
Retorna o caminho complete do arquivo no servidor.
Size
Retorna o tamanho, em bytes, do arquivo.
Type
Retorna o tipo do arquivo.
Abraço!
Sugestões para os próximos enviem e-mail para eliezer@zarpsystem.com.br.