Este tópico me intimidou quando me apresentou pela primeira vez, porque, vamos encarar os fatos, um serviço da Web realmente parece que apenas processa XML e objetos serializados essencialmente em um formato de texto. Depois de fazer uma pequena investigação, descobri que realmente não é tão difícil e pode ser usado para uma coisa boa, incluindo interações de plataforma cruzada.

O grande segredo é passar um array de bytes como parâmetro e então usando o BinaryWriter para armazenar os bits em um arquivo. O exemplo a seguir mostra como passar a matriz de bytes, um nome de arquivo e um tipo de arquivo MIME para armazenar o arquivo localmente. Obviamente, o servidor web deve ter permissões de gravação na pasta de destino.

  _ 
 

Public

Sub

UploadBinaryFile (

ByVal

dados

As

Byte

(),

ByVal

fileName

As

String

, _
 

ByVal

fileType

Como

String

)
 
 

Dim

extensão

As

String

=

'.bin'

 
 

Dim

sDestFolder

As

String

=

String

.Empty

 
 

Se

fileType.Equals (

'application/pdf'

)

Então

 extension=

'.pdf'

 

Els eIf

fileType.Equals (

'image/tiff'

)

Então

 extension=

'.tiff'

 

ElseIf

fileType.Equals (

'image/jpeg'

)

Então

 extension=

'.jpg'

 

ElseIf

fileType.Equals (

'image/gif'

)

Então

 extension=

'.gif'

 

ElseIf

fileType.Equals (

'image/png'

)

Então

 extension=

'.png'

 

ElseIf

fileType.Equals (

'image/zip'

)

Então

 extension=

'.zip'

 

Else

 extension=

'.bin'

 

End

If

 
 

'Esta não é uma rotina completa, mas o suficiente para esta demonstração.

 

Se

fileName.EndsWith (extension)=

False

Então

 fileName=fileName & extension 
 

Fim

If

 
 fileName=sDestFolder & fileName 
 
 

Dim

fs

Como

Novo

FileStream (fileName, FileMode.OpenOrCreate)
 

Dim

w

Como

Novo

BinaryWriter (fs)
 

Para

i

As

Inteiro

=0

Para

data.Length-1
 w.Write (data (i)) 
 

Next

 
 w.Close () 
 fs.Close () 
 

End

Sub

Compartilhe este artigo com seus amigos!

Source link

Categories: Wordpress