// make a stream 
 IStreamPtr pStream; 
 ::CreateStreamOnHGlobal(NULL, TRUE, &pStream); 
 MSXML2::IXMLHTTPRequestPtr pReq(__uuidof(MSXML2::XMLHTTP26)); 
 pReq->open("POST", "https://inr-wks-08/AspUpload/UploadScript1.asp", 
VARIANT_FALSE); 
// pReq->open("POST", "https://inr-wks-08/UploadTest/output.asp", 
VARIANT_FALSE); 
 const LPCTSTR BOUNDARY = "---------------------------7d013a15e02c8"; 
 CString tmp; 
 tmp = CString("multipart/form-data; boundary=") + BOUNDARY; 
 tmp += '\r'; 
 tmp += '\n'; 
 pReq->setRequestHeader("Content-Type", (LPCTSTR)tmp); 
 ULONG written; 
 tmp = "--"; 
 pStream->Write((LPCTSTR)tmp, tmp.GetLength(), &written); 
 tmp = CString(BOUNDARY) + '\r' + '\n'; 
 pStream->Write((LPCTSTR)tmp, tmp.GetLength(), &written); 
 CString filename; m_wndFilename.GetWindowText(filename); 
 tmp = CString("Content-Disposition: form-data; name=\"file1\"; 
filename=\"") + filename + "\"" + '\r' + '\n'; 
 pStream->Write((LPCTSTR)tmp, tmp.GetLength(), &written); 
 tmp = CString("Content-Type: application/octet-stream") + '\r' + '\n' + 
'\r' + '\n'; 
 pStream->Write((LPCTSTR)tmp, tmp.GetLength(), &written); 
 CFile file(filename, CFile::modeRead | CFile::typeBinary); 
 BYTE* pByte = new BYTE[file.GetLength()]; 
 file.Read(pByte, file.GetLength()); 
 pStream->Write(pByte, file.GetLength(), &written); 
 delete [] pByte; 
 tmp = CString() + '\r' + '\n'; 
 pStream->Write((LPCTSTR)tmp, tmp.GetLength(), &written); 
 tmp = "--"; 
 pStream->Write((LPCTSTR)tmp, tmp.GetLength(), &written); 
 tmp = CString(BOUNDARY); 
 pStream->Write((LPCTSTR)tmp, tmp.GetLength(), &written); 
 tmp = "--"; 
 pStream->Write((LPCTSTR)tmp, tmp.GetLength(), &written); 
 LARGE_INTEGER offset = {0}; 
 ULARGE_INTEGER newPos; 
 pStream->Seek(offset, STREAM_SEEK_SET, &newPos); 
 try 
 { 
  pReq->send(_variant_t(pStream.GetInterfacePtr())); 
  CFile tmpfile("c:\\temp.html", CFile::modeCreate | CFile::modeWrite | 
CFile::typeBinary); 
  tmpfile.Write((LPCTSTR)pReq->GetresponseText(), 
pReq->GetresponseText().length()); 
  tmpfile.Close(); 
  m_webBrowser.Navigate("c:\\temp.html", &vtMissing, &vtMissing, &vtMissing, 
&vtMissing); 
 } 
 catch(_com_error& e) 
 { 
  AfxMessageBox(e.ErrorMessage()); 
  AfxMessageBox(e.Description()); 
 } 

解决方案 »

  1.   

    http://www.w3.org/2001/tag/doc/whenToUseGet.html
      

  2.   

    to lypdl() :喊啥!!!jiangsheng(蒋晟.Net[MVP]) 老大不告你方法了吗!
    更详细一点?替你写了得了。
    自己照着上面的查查资料不会啊。
      

  3.   

    对付txt文件:
    index.jsp
     <form action="doupload.jsp" method="post" enctype="multipart/form-data">
        file:<input type="file" name="file"><br>
        <input type="submit" value="upload">
        </form>
    doupload.jsp
     <%
        //request.setCharacterEncoding("UTF-8");
        //String file=request.getParameter("file");//只能获取文件路径
        InputStream s=request.getInputStream();//获取文件内容
        BufferedReader br=new BufferedReader(new InputStreamReader(s));
        BufferedWriter bw=new BufferedWriter(new  FileWriter(new File(request.getRealPath(path)+System.currentTimeMillis()+".txt")));
        String content=br.readLine();
        boolean flag=false;
        while(content!=null){
         if(content.indexOf("Content-Type: text/plain")!=-1){
           br.readLine();
           content=br.readLine();      
           flag=true;
           continue;
           }
        if(!content.equals("\n")&& flag &&!content.startsWith("-----------------------------")){
           out.print(content+"<br>");
           bw.write(content+"\r\n");
           }
           content=br.readLine();
        }
        
         %>