JAK: Odesílat a přijímat Binární dokumenty pomocí webové služby ASP.NET a Visual C# .NET

Souhrn

Tento článek ukazuje, jak vytvořit webovou službu a klient webové služby odesílat a přijímat Binární dokumenty pomocí Microsoft ASP.NET a Microsoft Visual C# .NET. Technologie ASP.NET a Visual C# .NET můžete vytvořit webové služby, která ukládá Binární dokumenty do složky na webovém serveru i načte Binární dokumenty ze složky na webovém serveru. Tuto službu lze použít jako jednoduchý systém správy dokumentů na webu.


Vytvoření webové služby

  1. V nabídce soubor v aplikaci Microsoft Visual Studio .NET klepněte na příkaz Novýa klepněte na příkaz projekt.
  2. V Aplikaci Visual C# projektyvyberte Webové služby ASP.NET. Zadejte nebo vložte http://localhost/DocumentManagementService pro umístěnía potom klepněte na tlačítko OK. Ve výchozím Service1.asmx je vytvořena a zobrazena v návrhovém zobrazení.
  3. V nabídce Zobrazit klepněte na kód , který zobrazí zobrazení Kód Service1.asmx.
  4. Přidejte následující kód prvkům WebMethod třídy 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;
    }


    Poznámka: Kód uloží dokumenty < kořen >: \\DocumentDirectory\\ cesta k adresáři na serveru. Změňte místo, kam chcete uložit dokumenty do složky na webovém serveru.

  5. Přidejte následující obor názvů na začátek Service1.asmx:
    using System.IO;
  6. Testování webové služby:
    1. V nabídce Debug klepněte na tlačítko Start ke spuštění webové služby. Spustí se webový prohlížeč a zobrazí se na stránce nápovědy pro popis služby.
    2. Ujistěte se, že se zobrazí metody SaveDocument, GetDocumenta GetDocumentLen .
    3. Zavřete okno webového prohlížeče k zastavení ladění.

Vytvořit klienta pro webové služby

  1. V nabídce soubor v aplikaci Visual Studio .NET klepněte na tlačítko Přidat projekta potom klepněte na tlačítko Nový projekt.
  2. V seznamu Visual C# projekty vyberte Aplikace Windowsa potom klepněte na tlačítko OK. Ve výchozím nastavení je vytvořen formulář Form1.
  3. Přidáte webový odkaz do webové služby takto:
    1. V Průzkumníku řešení klepněte pravým tlačítkem na položku Klient projektu. Z kontextové nabídky vyberte Přidat webový odkaz .
    2. V dialogovém okně Přidat webový odkaz zadejte URL k souboru webové služby WSDL (Description Language) webové služby a potom stiskněte klávesu ENTER.

      Poznámka: Výchozí umístění souboru WSDL je http://localhost/DocumentManagementService/Service1.asmx?WSDL.
    3. V dialogovém okně Přidat webový odkaz klepněte na tlačítko Přidat odkaz.
  4. Přidáte dvě tlačítka Form1. Nastavte vlastnost Text Button1 do Úložiště dokumentů na serveru. Nastavte vlastnost Text BUTTON2 načístdokument ze serveru.
  5. Poklepejte na button1 a button2 vytvořit výchozí, klepněte na tlačítko obslužné rutiny událostí tlačítek.
  6. Obslužné rutiny nahraďte následující kód:
    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();
    }

    Poznámka: SFile proměnná musí obsahovat místní cestu k dokumentu, který bude odeslán na server. Po stažení dokumentu je umístěn ve stejné složce a hodnota 2 je připojena k názvu souboru.

  7. Na začátek souboru přidáte následující obor názvů:
    using System.IO;
  8. V Průzkumníku řešení klepněte pravým tlačítkem na položku Klient projektu. Vyberte nastavit jako projekt při spuštění v místní nabídce.

Vyzkoušet

  1. V nabídce Debug klepněte na tlačítko Start. Zobrazí se Form1.
  2. Klepněte na tlačítko Úložiště dokumentů na serveru. To bude volat metodu webové SaveDocument . Tato metoda Web místní dokument uložen v < kořen >: \DocumentDirectory\ složky na serveru. Po přenesení dokumentu ověřte, zda soubor existuje v cílové složce.
  3. Klepněte na tlačítko Načíst dokument ze serveru. To bude volat metodu webové GetDocument . Tato metoda webové načte dokument z < kořen >: \DocumentDirectory\ složky na serveru. Dokument je uložen na místní jednotku, která je zadána v kódu.

Odkazy

Další informace naleznete v dokumentaci Microsoft Visual Studio .NET.

Vlastnosti

ID článku: 318425 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor