2011-10-19 46 views
0
protected void UploadFile(object sender, EventArgs e) 
    { 
     if (fileUpload.HasFile) 
     { 
      if (fileUpload.PostedFile.ContentType == "text/xml") 
      { 
       Stream inputstream = fileUpload.PostedFile.InputStream; 

       byte[] streamAsBytes = (ConvertStreamToByteArray(inputstream)); 

       string stringToSend = BitConverter.ToString(streamAsBytes); 

       xmlstream.Value = stringToSend; 

       sendXML.Visible = true; 
       infoLabel.Text = string.Empty; 
/* 
       string path = Server.MapPath("GenericHandler.ashx"); 
       WebClient wc = new WebClient(); 
       wc.UploadFile(path,"POST", fileUpload.PostedFile); 
       Something like this maybe? But is there any way to do it without saving the file?   */ 

      } 
      else 
      { 
       infoLabel.Text = "Please select an XML file"; 
       sendXML.Visible = false; 
      } 
     } 
    } 

這是我當前的代碼。 xml以十六進制字符串的形式保存在隱藏字段中,並通過jquery ajax發送。但是發送文件本身並在處理程序中處理它會好得多。那可能嗎?使用http-post發送xml文件到處理程序

+0

請不要」 t以「asp.net c#:」爲前綴。這就是我們所有的標籤[所以]。 –

回答

0

嘗試下面的代碼,我沒有測試它,但它應該工作,而不是字符串,字節[]傳遞給方法

private string PostData(string url, byte[] postData) 
    { 
     HttpWebRequest request = null; 
     Uri uri = new Uri(url); 
     request = (HttpWebRequest)WebRequest.Create(uri); 
     request.Method = "POST"; 
     request.ContentType = "application/x-www-form-urlencoded"; 
     request.ContentLength = postData.Length; 
     using (Stream writeStream = request.GetRequestStream()) 
     { 
      writeStream.Write(postData, 0, postData.Length); 
     } 
     string result = string.Empty; 
     using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
     { 
      using (Stream responseStream = response.GetResponseStream()) 
      { 
       using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8)) 
       { 
        result = readStream.ReadToEnd(); 
       } 
      } 
     } 
     return result; 
    } 

發現這裏的代碼爲Http Post in C#

0

是的,你可以創建一個HttpWebRequest,設置它的MethodPOST(如果這就是你所需要的),然後在你的文件數據的請求創建表單域。您需要了解一些關於HTTP請求的工作原理以及如何在請求中正確創建該表單字段,但這是可行的(並且不是太困難)。

相關問題