none
Upload e download com busca em diretório RRS feed

  • Pergunta

  • Ola pessoal! Estou querendo implementar rotinas de upload e download no meu sistema. Só tenho um pequeno probleminha, para o usuario fazer download de um determinado arquivo, vou ter que fazer uma consulta baseada no id do usuário, mes e ano de referencia escolhido por ele. A partir dai vou ter que gerar um arquivo texto com o resultado da consulta e o nome do arquivo tem que ser o id do usuario + o mes e ano escolhido por ele. tenho que armazenar este arquivo em um diretorio pré-definido por mim, tipo c:\projeto\download e apartir dai gerar o donwload para que a pessoa possa baixar. Alguma idéia do que eu possa fazer???

     

    quinta-feira, 19 de abril de 2007 14:26

Todas as Respostas

  • Eu estive pensando em usar esta rotina de download em que deve passar o caminho e o nome do arquivo, e o tipo do arquivo como parametro.

    Public Sub DownloadFile(ByVal FilePath As String, Optional ByVal ContentType As String = "")

    If File.Exists(FilePath) Then

    Dim myFileInfo As FileInfo

    Dim StartPos As Long = 0, FileSize As Long, EndPos As Long

    myFileInfo = New FileInfo(FilePath)

    FileSize = myFileInfo.Length

    EndPos = FileSize

    HttpContext.Current.Response.Clear()

    HttpContext.Current.Response.ClearHeaders()

    HttpContext.Current.Response.ClearContent()

    Dim Range As String = HttpContext.Current.Request.Headers("Range")

    If Not ((Range Is Nothing) Or (Range = "")) Then

    Dim StartEnd As Array = Range.Substring(Range.LastIndexOf("=") + 1).Split("-")

    If Not StartEnd(0) = "" Then

    StartPos = CType(StartEnd(0), Long)

    End If

    If StartEnd.GetUpperBound(0) >= 1 And Not StartEnd(1) = "" Then

    EndPos = CType(StartEnd(1), Long)

    Else

    EndPos = FileSize - StartPos

    End If

    If EndPos > FileSize Then

    EndPos = FileSize - StartPos

    End If

    HttpContext.Current.Response.StatusCode = 206

    HttpContext.Current.Response.StatusDescription = "Partial"

    HttpContext.Current.Response.AppendHeader("Content-Range", "bytes " & StartPos & "-" & EndPos & "/" & FileSize)

    End If

    If Not (ContentType = "") And (StartPos = 0) Then

    HttpContext.Current.Response.ContentType = ContentType

    End If

    HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" & myFileInfo.Name)

    HttpContext.Current.Response.WriteFile(FilePath, StartPos, EndPos)

    HttpContext.Current.Response.End()

    Else

    MsgBox("Não foi possível encontrar o arquivo!", MsgBoxStyle.Exclamation, "Aviso")

    End If

    End Sub

    quinta-feira, 19 de abril de 2007 14:28
  • outra coisase eu não poder ter este diretorio prédefinido, eu tenho como criar isso?
    quinta-feira, 19 de abril de 2007 14:40
  • Oi Ricardo, para questão do download em si me serve, mas para controlar o resto, não... teria alguma solução usando o objeto stream???
    quinta-feira, 19 de abril de 2007 18:51