none
Upload com o DUNDAS RRS feed

  • Pergunta

  • Caros Amigos,

    Eu estou precisando salvar uma imagem usando o Upload do DUNDAS com um nome específico de arquivo. Trata-se do seguinte: Vamos tomar como exemplo que o ID de um usuário seja 325. Então ao enviar uma imagem sua (exemplo: carlos.jpg) e o script deve salvar no diretório como i0000325.jpg

    O script de Upload funciona legal, mas para efeito de programação seria viável usar essa nomeclatura para que eu não precise guardar o nome da imagem no banco de dados.

    Agradeço a ajuda.

     

    terça-feira, 16 de maio de 2006 15:21

Todas as Respostas

  • Olha, isso é independente se você está usando o Dundas ou o proprio FileUpload do ASP.Net 2.0. Simplesmente quando vc salvar o arquivo (FileUpload.SaveAs, por exemplo) vc coloca o nome que quiser. Lembre apenas de tomar cuidado de guardar o nome certo no banco, e prestar atenção em rotinas que precisem alterar o nome da imagem, para manter o nome do arquivo e  nome no banco sincronizados.

    É isso. Boa Sorte!

    []'s
    Fabio Alves

    terça-feira, 16 de maio de 2006 18:06
  • Sim Fábio,

    Mas onde eu coloco o nome do arquivo? Seria mais ou menos assim? Fileupload.Save("Arquivo.jpg")?

    Obrigado.

     

    segunda-feira, 22 de maio de 2006 16:42
  • Exato

    Mas preste atenção aonde vc vai salvar. Por exemplo, se vc vai salvar na pasta "\imagens" então você deve fazer assim:

    Fileupload.Save( Server.MapPath("\imagens\Arquivo.jpg"))

    o Server.MapPath transforma o diretorio virtual num diretorio fisico

    []'s
    Fabio

    segunda-feira, 22 de maio de 2006 19:08
  • Sobre guardar o nome da imagem no banco, é uma boa prática. Pq vc pode mudar a regra de nomenclatura, e não precisará alterar os arquivos de imagem posteriormente, uma vez no banco, basta buscar o nome pronto do banco. Vc deve modelar de uma forma que fique facil a busca.
    segunda-feira, 29 de maio de 2006 12:03
  • pessoal.. me desculpe invadir dessa orma..

    porém estou com um grande problema..

    tenho 2 dúvidas..

    1º ) o dundas funciona no win xp?? como?? pois tentei instala-lo em casa e ferrou tudo.

     

    2º)  ja que ferrou tudo . instalei o Windows Server 2003 .. e adivinhem .. funcionouuuu!!!´só que agora o dreamweaver não instala!!!!! ¬¬ ou seja.. trampei um buraco e abri outro!! alguem ai sabe se o server 2003 roda o DW ??? se rodar ql pode ser o problema?? tipo..ele da erro fatal na hora da execução do programa!!!!!!!!!

    alguem pode me ajudar?!!!!!!!!!!!!!

    segunda-feira, 12 de junho de 2006 18:11
  • Kara ja tentei usar esse DUNDAS e não consegui.... pow resolvi o problema fazendo upload sem usar componentes..... no site aspbrasil.com.br tem um exemplo de como fazer o upload sem usar componetes...
    terça-feira, 13 de junho de 2006 16:41
  • AOOOOO..

     

    SEGUINTE.. só estou postando para dar a solução do meu problema..

     

    entrem no newsgroup na sessão asp.. tem um post meu la que fala.. "Dundas Upload funciona.. é um milagre!!!!!" rsrsrs..

    la eu mostro como funcionou comigo..

    espero ter ajudado muitas pessoas.. x)

     

    abçs!

    sexta-feira, 16 de junho de 2006 17:09
  • David, estou precisando desta solução do DUNDAS para o Windows XP, teria como me responder por aqui qual foi a solução? Não encontrei nesse tal de "Newsgroup"... :\

     

    Obrigado.

     

    Abraço.

    segunda-feira, 9 de julho de 2007 17:46
  • Me parece que o Dundas Upload foi "descontinuado" e a Dundas.com não dá mais suporte a este componente. No site deles você só encontra referências e suporte ao Dundas Chart, Gauge, Map e Calendar, tente http://support.dundas.com/forum/
    terça-feira, 10 de julho de 2007 12:01
  • vou colocar aki um exemplo de upload sem componente , ve ae se ajuda.

     

     

    -- pagina "cadastro.asp"

     

     

    <!-- #include file='upload_funcoes.asp' -->

    <%

    ' Chamando Funções, que fazem o Upload funcionar
    byteCount = Request.TotalBytes
    RequestBin = Request.BinaryRead(byteCount)
    Set UploadRequest = CreateObject("Scripting.Dictionary")
    BuildUploadRequest RequestBin

    ' Recuperando os Dados Digitados ----------------------

    contentType = UploadRequest.Item("foto").Item("ContentType")
    filepathname = UploadRequest.Item("foto").Item("FileName")
    filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
    filename = Replace(filename,".","_"& rndit &".")
    value = UploadRequest.Item("foto").Item("Value")

    Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")


    'FAZ O UPLOAD DAS IMAGENS EM UMA PASTA (/COBERTURA).
     pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
           Set MyFile = ScriptObject.CreateTextFile(Server.mapPath("../zero4/cobertura/"&filename&""))
      
     For i = 1 to LenB(value)
      MyFile.Write chr(AscB(MidB(value,i,1)))
     Next
     MyFile.Close
    'renomeia ao arquivo
    Function rndit()
     Dim RndTemp
     Randomize
     RndTemp = Rnd * 100
     RndTemp= Int(RndTemp)
     rndit = RndTemp
    End Function

      
    abredb.execute("INSERT INTO foto (codigo,nome,foto) values ('"& codigo &"','"& nome &"','"& filename &"')")

    Response.Redirect "editCobertura.asp?codigo=" & codigo &""

    %>

     

     

    -- Pagina "upload_funcoes.asp"

     

    <%
    ' Upload Sem componentes ---------------------------------------
    Sub BuildUploadRequest(RequestBin)
    on error resume next

    PosBeg = 1
    PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
    boundary = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
    BoundaryPos = InStrB(1, RequestBin, boundary)

    Do Until (BoundaryPos = InStrB(RequestBin, boundary & getByteString("--")))

    Dim UploadControl
    Set UploadControl = CreateObject("Scripting.Dictionary")

    Pos = InStrB(BoundaryPos, RequestBin, getByteString("Content-Disposition"))
    Pos = InStrB(Pos, RequestBin, getByteString("name="))
    PosBeg = Pos + 6
    PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))
    Name = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
    PosFile = InStrB(BoundaryPos, RequestBin, getByteString("filename="))
    PosBound = InStrB(PosEnd, RequestBin, boundary)

    If PosFile <> 0 And (PosFile < PosBound) Then
    PosBeg = PosFile + 10
    PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(34)))
    FileName = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
    UploadControl.Add "FileName", FileName
    Pos = InStrB(PosEnd, RequestBin, getByteString("Content-Type:"))
    PosBeg = Pos + 14
    PosEnd = InStrB(PosBeg, RequestBin, getByteString(Chr(13)))
    ContentType = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
    UploadControl.Add "ContentType", ContentType
    PosBeg = PosEnd + 4
    PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2
    Value = MidB(RequestBin, PosBeg, PosEnd - PosBeg)
    Else
    Pos = InStrB(Pos, RequestBin, getByteString(Chr(13)))
    PosBeg = Pos + 4
    PosEnd = InStrB(PosBeg, RequestBin, boundary) - 2
    Value = getString(MidB(RequestBin, PosBeg, PosEnd - PosBeg))
    End If

    UploadControl.Add "Value", Value
    UploadRequest.Add Name, UploadControl
    BoundaryPos = InStrB(BoundaryPos + LenB(boundary), RequestBin, boundary)
    Loop
    End Sub

    Function getByteString(StringStr)
    For i = 1 To Len(StringStr)
    Char = Mid(StringStr, i, 1)
    getByteString = getByteString & ChrB(AscB(Char))
    Next
    End Function

    Function getString(StringBin)
    getString = ""
    For intCount = 1 To LenB(StringBin)
    getString = getString & Chr(AscB(MidB(StringBin, intCount, 1)))
    Next
    End Function

    ' Fim upload sem Componentes -----------------------------------------
    %>

    quarta-feira, 1 de agosto de 2007 13:50