you need to encode the binary, for example, with base64 encoding with Convert.ToBase64String Method (Byte[]), seeXML, SOAP, and Binary Data
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/infoset_whitepaper.asp

解决方案 »

  1.   

    http://www.perfectxml.com/articles/xml/binary.asp
      

  2.   

    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=EBD43E74-1BDE-43AA-DEAF-211FA24A7BC2
      

  3.   

    当然可以,给个例子你
    [WebMethod(Description="本WebService实现文件上传功能!")]
    public void xmlUpLoad(string fileUrl,string fileName,string fileType,byte[] fileContent,DateTime uploadTime)
    {
    strContent=Convert.ToBase64String(fileContent);
    bool blnExists=false;
    StreamWriter writer=null;
    string xmlFile=fileUrl+fileName+".xml";
    blnExists=File.Exists(xmlFile);
    if(!blnExists)
    {
    writer=new StreamWriter(File.Open(xmlFile,FileMode.Create,FileAccess.Write),System.Text.Encoding.Default);
    writer.WriteLine("<?xml version=\"1.0\" encoding=\"gb2312\" ?>");
    writer.WriteLine("<upload>");
    writer.WriteLine("<filename>"+fileName+"</filename>");
    writer.WriteLine("<filetype>"+fileType+"</filetype>");
    writer.WriteLine("<filecontent>"+strContent+"</filecontent>");
    writer.WriteLine("<date>"+uploadTime+"</date>");
    writer.WriteLine("</upload>");
    writer.WriteLine();
    writer.Flush();
    writer.Close();
    }
    }
      

  4.   

    //以xml文件为存储方式的下载文件方法
    private void xmlDownLoad(string filePath)
    {
    XmlDocument doc=new XmlDocument();
    doc.Load(filePath);
    XmlNode node=doc.SelectSingleNode("/upload/filecontent");
    string file=node.InnerText;
    XmlNode node1=doc.SelectSingleNode("/upload/filetype");
    string fType=node1.InnerText;
    XmlNode node2=doc.SelectSingleNode("/upload/filename");
    string fName=node2.InnerText;
    byte[] myFile=Convert.FromBase64String(file);
    Response.ClearHeaders();
    Response.ClearContent();
    //文件类型
    Response.AddHeader("Content-Type",fType);
    //下载文件(解码解决了文件中文名下载乱码的问题)
    Response.AddHeader("Content-Disposition", "attachment; filename="+System.Web.HttpUtility.UrlEncode( System.Text.Encoding.UTF8.GetBytes(fName)));
    HttpContext.Current.Response.OutputStream.Write(myFile,0,myFile.Length);
    HttpContext.Current.Response.Flush();
    HttpContext.Current.Response.End();
    }
      

  5.   

    TO cmsoft:
    请问在Web上怎么实现?我怎么才能调用上传方法?
      

  6.   

    可以不必用Web Services,你把我的那个方法写在一个页面的cs文件里也行或者类文件也行