none
Passar um valor binario do upload RRS feed

  • Pergunta

  •  

    Olá galera blz..

    to com um problema que ainda não consegui resolver... é o seguinte

    eu tenho um form upload e tbm uma função que fará a transferencia do arquivo só que eu não estou conseguindo passar o dado necessário para a função...

     

    olhem abaixo a function

    --------------------------------------
    public function uploadDocument(dim docBinaryArray as byte(), dim docName as string)
     dim strDocPath as string
     strDocPath = "C:\Arquivos de programas\"+docName;
     dim objfileStream as FileStream = new FileStream(strDocPath, FileMode.Create, FileAccess.ReadWrite)
     objfileStream.Write(docBinaryArray, 0, docBinaryArray.Length)
     objfileStream.Close()
    end function

     

    formulario do upload

    ------------------------------

     

    <form id="UploadDocument" action="http://www.spacelab.com.br/img" method="post" enctype="multipart/form-data" runat="server">
      Img:
      <input type="file" id="filUpload" name="filUpload" runat="server" />
      <br />
      <br />
      Nome pasta:
      <input type="text" id="docname" name="docname" />
      <br />
      <br />
     <asp:Button ID="eu" OnClick="upload" Text="Enviar" runat="server" />
    </form>

     

    então se vcs repararem tem um parametro q eu tenho q passar em formato byte.... é ai q está meu problema pois eu não sei como passar isso...

    como faço isso?

    terça-feira, 13 de maio de 2008 20:42

Todas as Respostas

  • Utilize o componente de upload do .NET

    Resolverá seu problema

    O componentete de upload do .NET tem o metodo SaveAs, nem precisa de pegar bytes, streams e etc para salvar o arq.
    sexta-feira, 25 de julho de 2008 18:44
  • entaum bruno...
    essa function eu peguei de um exemplo q era via web service...
    tipo na verdade eu kero um exemplo de upload para usar em um web service onde eu poderia conseguir um exemplo???

     

    sexta-feira, 25 de julho de 2008 18:53
  • Assim, não existe "upload" para um WS. O q vc pode fazer é: Criar um método no seu WS com nome

    Upload ( ByVal  file As Byte()  )    - Que receba um array de bytes.

     

    Na sua App Web, pegue o arq como arr bytes com o objeto FileUpload do .NET e chame o metodo do WS passando este arr como parametro.

    Lá no WS vc salva no disco.

     

    sexta-feira, 25 de julho de 2008 23:38
  • mas ai dentro do metodo q está criado no WS eu uso FileStream para salvar no disco.. né...
    num sei se passei qual é a minha ideia... mas é a seguinte
    eu tenho um site.. q roda no servidor 1 q tem o formulario do upload, por sua vez o form acessa o WS e o salva no servidor 2 a img....

    resumindo... kero um formulario em um servidor e kero gravar a img no outro servidor... isso é possivel né.. com WS

     

    da uma olhada ai no meu script e ainda naum funcionou.. tirei do WS e colokei na mesma pagina... os dados estaum passando corretamente mais da esse erro

     

    Could not find a part of the path 'C:\Documents and Settings\Marte M\Meus documentos\Minhas imagens\bike3.jpg'.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Documents and Settings\Marte M\Meus documentos\Minhas imagens\bike3.jpg'.

    Source Error:

    Line 15:  
    Line 16:  response.Write(docName)
    Line 17:  Dim objfileStream As FileStream = New FileStream(docName, FileMode.Create, FileAccess.ReadWrite)
    Line 18:  'objfileStream.Write(docBinaryArray, 0, docBinaryArray.Length)
    Line 19:  'objfileStream.Close()

     

     

     

    Public Function uploadDocument(ByVal docBinaryArray As Byte(), ByVal docName As String)
     response.Write(docName)
     Dim objfileStream As FileStream = New FileStream(docName, FileMode.Create, FileAccess.ReadWrite)
     objfileStream.Write(docBinaryArray, 0, docBinaryArray.Length)
     objfileStream.Close()

     Return "ok"
    End Function

     

     

    sub upload()
     'dim aService1 as new Service1()
     'If Not IsNothing(filUpload.PostedFile) Then
     Dim infoarquivo As New IO.FileInfo(filUpload.PostedFile.FileName)
     dim myfile as HttpPostedFile = filUpload.PostedFile
     dim nBytes as integer = myfile.ContentLength
     dim myBytes() as Byte = new byte(nBytes){}
     dim arqString as string = infoarquivo.ToString()
     'dim aObject as Object = aService1.uploadDocument(myBytes, arqString)
     ' response.Write(aObject)
     'end if
     'response.Write(arqString)
     uploadDocument(myBytes, arqString)
     
    end sub

    terça-feira, 29 de julho de 2008 14:46
  • Isso ae, está no caminho certo.

     

    Certifique q este caminho exista, pois esta dando erro DirectoryNotFoundException.

    Coloque um breakpoint onde esta dando erro e execute no imediate o comando Directory.Exist( docName )

     

    Depois altere aquele FileAccess para apenas Write. Como vc nao ira ler a img, use apenas write.

     

    quarta-feira, 30 de julho de 2008 22:40