• 使用WSE2.0发送附件(如图片等)


    使用WSE2.0的Dime可以发送附件。

    1、服务器端与客户端都要对Microsoft.Web.Services2.dll进和引用。

    2、使用Configuration Edtion为Web服务配置Web.config,打开Configuration Edtion,在General标签内选中所有项,然后选择保存后,会提示保存为一个config 文件,保存后打开这个文件,把里面的相关内容拷入web.config

    3、web服务器端的AdvancedService.asmx文件内添加一个方法:

      /// <summary>
      /// 利用DIME传输附件
      /// </summary>
      [WebMethod]
      public string GetAttachment()
      {
       SoapContext myContext = ResponseSoapContext.Current;
       string filePath = Server.MapPath("Demo/tmpPic1.jpg");
      
       DimeAttachment dimeImage = new DimeAttachment(
        "image/jpeg",TypeFormat.MediaType,filePath);
        dimeImage.Id = "tmpPic1.jpg";

       //将新的DimeAttachment对象添加到SoapContext对象中,
       myContext.Attachments.Add(dimeImage);
       return filePath;

    }

    4、在客户端添加一个Web引用,如:Services,这里会自动产生一个代理类AdvancedServiceWse,

    总是以Wse结尾的。

    5、在客户端添加如下代码:

      private void Page_Load(object sender, System.EventArgs e)
      {
       AdvancedServiceWse asv = new AdvancedServiceWse();
       try
       {
        myString = asv.GetAttachment();
       }
       catch(Exception ex)
       {
        Response.Output.Write(调用失败!);

         return;
       }
       Bitmap myImage = new Bitmap(asv.ResponseSoapContext.Attachments[0].Stream);
       MemoryStream mStream = new MemoryStream();
       myImage.Save(mStream,ImageFormat.Jpeg);
       myImage.Dispose();

       Response.ClearContent();
       Response.ContentType = "image/jpeg";
       Response.BinaryWrite(mStream.ToArray());
       Response.End();
       
      }

    这样就可以显示出从Web服务发过来的图片了

  • 相关阅读:
    Csharp: ASP.NET Core 3.1 Razor Pages Query and Pagination
    人脸识别示例
    C# 调用WCF服务的两种方法
    linux磁盘空间满处理情况
    linux上PGI编译器安装
    jeecgboot中自定义sql分页实现
    顺畅访问github的一种新思路和方案
    eduYouke在线教育点播系统
    基于SpringBoot的在线教育系统【源码开源】【建议收藏】
    解决ThinkPHP6 控制器不存在:app\controller\Index
  • 原文地址:https://www.cnblogs.com/chenjunbiao/p/1760287.html
Copyright © 2020-2023  润新知