我要将文字和图片信息打包成smtp包,通过xml发送出去,该怎么做?
求高手指点。

解决方案 »

  1.   

    function SendImage()
    {
    //  创建  ADO-stream  对象 
    var  ado_stream  =  new  ActiveXObject("ADODB.Stream"); 
        
    //  创建包含默认头信息和根节点的  XML文档 
    var  xml_dom  =  new  ActiveXObject("MSXML2.DOMDocument"); 
    xml_dom.loadXML('<?xml  version="1.0"  ?>  <root/>'); 
    //  指定数据类型 
    xml_dom.documentElement.setAttribute("xmlns:dt",  "urn:schemas-microsoft-com:datatypes"); 
        
    //  创建一个新节点,设置其为二进制数据节点 
    var l_node1  = xml_dom.createElement("file1"); 
    l_node1.dataType  =  "bin.base64"; 
    //  打开Stream对象,读源文件 
    ado_stream.Type  =  1;  //  1=adTypeBinary   
    ado_stream.Open(); 
    var FileName = "c:\\RequestImage.jpg";  
    ado_stream.LoadFromFile(FileName); 
    //将文件内容存入XML节点 
    l_node1.nodeTypedValue  =  ado_stream.Read(-1);  //  -1=adReadAll 
    ado_stream.Close(); 
    xml_dom.documentElement.appendChild(l_node1); 
        
    //  可以创建多个二进制节点,一次上传多个文件 
        
    //  把XML文档发送到Web服务器 
    var url = "../Register/SetRequestImage.aspx?OBRID=" + OBR_ID;
    var  xmlhttp  =  new  ActiveXObject("Microsoft.XMLHTTP"); 
    xmlhttp.open("POST",url,false); 
    xmlhttp.send(xml_dom);
    }
      

  2.   

    可以这样做:
    string str=@"D:\Documents and Settings\my\桌面\MKMPlan.bmp";
    FileStream file =  new FileStream(str,FileMode.Open, FileAccess.Read);
    Byte[] bytBLOBData = new Byte[file.Length]; 
    file.Read(bytBLOBData, 0, bytBLOBData.Length);
    file.Close();
    这样就实现了图片的转化了,接下来就是你把FileStream用到什么地方了,也就是把图片用上了,