Comment : Envoyer et recevoir des Documents binaires en utilisant un Service Web d’ASP.NET et Visual C# .NET

Résumé

Cet article pas à pas vous montre comment créer un service Web et un client de service Web pour envoyer et recevoir des documents binaires en utilisant Microsoft ASP.NET et Microsoft Visual C# .NET. Vous pouvez utiliser ASP.NET et Visual C# .NET pour créer un service Web qui extrait des documents binaires à partir d’un dossier sur un serveur Web et enregistre des documents binaires dans un dossier sur un serveur Web. Vous pouvez utiliser ce service comme un simple système de gestion de documents sur le Web.


Générez le Service Web

  1. Dans le menu fichier dans Microsoft Visual Studio .NET, cliquez sur Nouveau, puis cliquez sur projet.
  2. Dans les Projets Visual C#, sélectionnez le Service Web de ASP.NET. Tapez ou collez http://localhost/DocumentManagementService pour l' emplacementet puis cliquez sur OK. Par défaut, Service1.asmx est créé et s’affiche en mode Création.
  3. Dans le menu affichage , cliquez sur Code pour afficher le fichier Service1.asmx en mode code.
  4. Ajoutez les codes WebMethod suivants à la 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;
    }


    Remarque : Le code enregistre les documents à la < racine > : chemin d’accès du répertoire \\DocumentDirectory\\ sur le serveur. Remplacez le dossier dans lequel vous souhaitez enregistrer les documents sur votre serveur Web.

  5. Ajouter l’espace de noms suivant au début du fichier Service1.asmx :
    using System.IO;
  6. Tester le service Web :
    1. Dans le menu Déboguer , cliquez sur Démarrer pour démarrer le service Web. Le navigateur Web démarre et la page d’aide de la description de service s’affiche.
    2. Assurez-vous que les méthodes SaveDocument GetDocumentet GetDocumentLen s’affichent.
    3. Fermez la fenêtre du navigateur Web pour arrêter le débogage.

Créer un Client du service Web

  1. Dans le menu fichier dans Visual Studio .NET, cliquez sur Ajouter un projet, puis cliquez sur Nouveau projet.
  2. Dans la liste des Projets Visual C# , sélectionnez Application Windows, puis cliquez sur OK. Par défaut, Form1 est créé.
  3. Ajoutez une référence Web au service Web, comme suit :
    1. Dans l’Explorateur de solutions, cliquez sur l’élément de projet du client. Puis sélectionnez Ajouter une référence Web dans le menu contextuel .
    2. Dans la boîte de dialogue Ajouter une référence Web , tapez l’URL du fichier Web Services Description Language (WSDL) pour le Service Web et appuyez sur ENTRÉE.

      Remarque : L’emplacement par défaut pour le fichier WSDL est http://localhost/DocumentManagementService/Service1.asmx?WSDL.
    3. Dans la boîte de dialogue Ajouter une référence Web , cliquez sur Ajouter une référence.
  4. Ajoutez deux boutons à Form1. Pour Enregistrer le Document sur le serveur, définissez la propriété Text de button1. Définissez la propriété Text de button2 pour Récupérer un Document à partir du serveur.
  5. Double-cliquez sur button1 et button2 à créer par défaut Cliquez sur gestionnaires d’événements pour les boutons.
  6. Remplacez les gestionnaires par le code suivant :
    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();
    }

    Remarque : La variable de la SCE fichier doit contenir le chemin d’accès de fichier local à un document qui sera téléchargé vers le serveur. Lorsque le document est téléchargé, il est placé dans le même dossier, et la valeur 2 est ajoutée au nom du fichier.

  7. Ajoutez l’espace de noms suivant au début du fichier :
    using System.IO;
  8. Dans l’Explorateur de solutions, cliquez sur l’élément de projet du client. Puis sélectionnez définir comme projet de démarrage dans le menu contextuel .

Essayez-le

  1. Dans le menu Déboguer , cliquez sur Démarrer. Form1 s’affiche.
  2. Cliquez sur le bouton Enregistrer le Document sur le serveur. Cela appellera la méthode Web SaveDocument . Cette méthode Web enregistre le document local dans la < racine > : dossier \DocumentDirectory\ sur le serveur. Une fois que vous avez transféré le document, vérifiez que le fichier existe dans le dossier de destination.
  3. Cliquez sur le bouton intitulé Récupérer un Document à partir du serveur. Cela appellera la méthode GetDocument du Web. Cette méthode Web extrait le document à partir du < racine > : dossier \DocumentDirectory\ sur le serveur. Le document est enregistré sur le disque local qui est spécifié dans le code.

Références

Pour plus d’informations, consultez la Documentation de .NET Microsoft Visual Studio.

Propriétés

ID d'article : 318425 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Commentaires