COMO: Enviar e receber documentos binários utilizando um serviço Web do ASP.NET e Visual C# .NET

Traduções de Artigos Traduções de Artigos
Artigo: 318425 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo mostra como criar um serviço Web e um cliente de serviço Web para enviar e receber documentos binários utilizando o Microsoft ASP.NET e Microsoft Visual C# .NET. Pode utilizar o ASP.NET e Visual C# .NET para criar um serviço Web que os guarda documentos binários para uma pasta num servidor Web e obtém documentos binários a partir de uma pasta num servidor Web. Pode utilizar este serviço como um sistema de gestão simples de documentos na Web.

Criar o serviço Web

  1. No menu ficheiro do Microsoft Visual Studio. NET, clique em Novo e, em seguida, clique em projecto .
  2. No Visual C# Projects , seleccione o Serviço Web do ASP.NET . Escreva ou cole http://localhost/DocumentManagementService para a localização e, em seguida, clique em OK . Por predefinição, Service1.asmx é criado e é apresentado na vista de estrutura.
  3. No menu Ver , clique em código para apresentar a vista de código para Service1.asmx.
  4. Adicione o seguinte código WebMethods à classe Service1 :
    
    [WebMethod]
    public bool SaveDocument( Byte[] docbinaryarray, string docname)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + docname;
    	FileStream objfilestream =new FileStream(strdocPath,FileMode.Create,FileAccess.ReadWrite);
    	objfilestream.Write(docbinaryarray,0,docbinaryarray.Length);
    	objfilestream.Close();
    
    	return true;
    }
    
    [WebMethod]
    public int GetDocumentLen(string DocumentName)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + DocumentName;
    
    	FileStream objfilestream = new FileStream(strdocPath,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;			
    	objfilestream.Close();
    
    	return len;
    } 
    
    
    [WebMethod]
    public Byte[] GetDocument(string DocumentName)
    {
    	string strdocPath;
    	strdocPath = "C:\\DocumentDirectory\\" + DocumentName;
    
    	FileStream objfilestream = new FileStream(strdocPath,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;			
    	Byte[] documentcontents  = new Byte[len];
    	objfilestream.Read(documentcontents,0,len);
    	objfilestream.Close();
    
    	return documentcontents;	
    } 
    					

    NOTA: <root>O código guarda os documentos para o <raiz>: \\DocumentDirectory\\ caminho do directório no servidor. Altere este para a pasta no servidor Web onde pretende guardar os documentos.

  5. Adicione o espaço de nomes seguinte no início do Service1.asmx:
    using System.IO;
  6. Teste o serviço Web:
    1. No menu Debug , clique em Iniciar para iniciar o serviço Web. Este procedimento inicia o browser e aparece a página da descrição do serviço de ajuda.
    2. Certifique-se de que os métodos SaveDocument GetDocument e GetDocumentLen aparecem.
    3. Feche a janela do browser Web para parar a depuração.

Criar um cliente para o serviço Web

  1. No menu ficheiro do Visual Studio. NET, clique em Adicionar projecto e, em seguida, clique em Novo projecto .
  2. Na lista Visual C# Projects , seleccione a Aplicação do Windows e, em seguida, clique em OK . Por predefinição, é criado o Form1.
  3. Adicione uma referência Web para o serviço Web, da seguinte forma:
    1. No Solution Explorer, clique com o botão direito do rato no item de projecto de cliente. Em seguida, seleccione Adicionar referência Web no menu de contexto .
    2. Na caixa de diálogo Adicionar referência Web , escreva o URL para o ficheiro WSDL (Web Services Description Language) para o serviço Web e, em seguida, prima ENTER.

      NOTA: A localização predefinida para o ficheiro WSDL é http://localhost/DocumentManagementService/Service1.asmx?WSDL.
    3. Na caixa de diálogo Adicionar referência Web , clique em Add Reference .
  4. Adicione dois botões ao Form1. Defina a propriedade texto de button1 ao Documento de arquivo no servidor . Defina a propriedade texto de button2 para Obter o documento a partir do servidor .
  5. Faça duplo clique em button1 e button2 para criar predefinidos, clique em processadores de eventos para os botões.
  6. Substitua os processadores o seguinte código:
    string sFile = "<file path>";
    
    private void button1_Click(object sender, System.EventArgs e)
    {
    	FileStream objfilestream = new FileStream(sFile,FileMode.Open,FileAccess.Read);
    	int len = (int)objfilestream.Length;
    	Byte[] mybytearray = new Byte[len];
    	objfilestream.Read(mybytearray,0,len);
    	localhost.Service1 myservice = new localhost.Service1();
    	myservice.SaveDocument(mybytearray,sFile.Remove(0,sFile.LastIndexOf("\\")+1));
    	objfilestream.Close();
    }
    
    private void button2_Click(object sender, System.EventArgs e)
    {
    	MemoryStream objstreaminput = new MemoryStream();
    	FileStream objfilestream = new FileStream(sFile.Insert(sFile.LastIndexOf("."),"2"), FileMode.Create,FileAccess.ReadWrite);
    						
    	localhost.Service1 myservice = new localhost.Service1();
    	int len = (int)myservice.GetDocumentLen(sFile.Remove(0,sFile.LastIndexOf("\\")+1)); 
    	Byte[] mybytearray = new Byte[len];
    	mybytearray = myservice.GetDocument(sFile.Remove(0,sFile.LastIndexOf("\\")+1));
    	objfilestream.Write(mybytearray,0,len);
    	objfilestream.Close();
    }
    					
    NOTA: a variável sFile tem de conter o caminho de ficheiro local para um documento que será enviado para o servidor. Quando o documento é transferido, é colocada na mesma pasta e um valor de 2 é anexado ao nome do ficheiro.

  7. Adicione o espaço de nomes seguinte no início do ficheiro:
    using System.IO;
  8. No Solution Explorer, clique com o botão direito do rato no item de projecto de cliente. Em seguida, seleccione Definir como projecto de arranque no menu de contexto .

Tente-saída

  1. No menu Debug , clique em Iniciar . É apresentado o Form1.
  2. Clique no botão denominado Documentos de arquivo no servidor . Isto irá chamar o método de Web SaveDocument . <root>Este método Web guarda o documento local in a <raiz>: \DocumentDirectory\ pasta no servidor. Depois de ter transferido o documento, verifique se o ficheiro existe na pasta de destino.
  3. Clique no botão com o rótulo Obter documento a partir do servidor . Isto irá chamar o método de Web GetDocument . <root>Este método Web copia o documento a <raiz>: \DocumentDirectory\ pasta no servidor. O documento é guardado na unidade local especificado no código.

Referências

Para mais informações, consulte a documentação do Microsoft Visual Studio .NET.

Propriedades

Artigo: 318425 - Última revisão: 15 de dezembro de 2003 - Revisão: 4.2
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbhowtomaster KB318425 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 318425

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com