2011-07-02 68 views
0

我無法將圖像轉換爲字節並將其保存在數據庫中。無法在ASP.NET中的HTTP Web請求中的HTTP POST中傳遞圖像

下面是本說明書中,

我有將從遠程設備被髮送到使用HTTP POST web服務器的圖像。

所以我正在做的是我請他們把圖像發給我。

由於數據是在POST i發送假設它們將被轉換成字節串使用的字節發送我

字節[] IMG = FileUpload1.FileBytes; 編碼enc = Encoding.ASCII; string img = enc.GetString(img);

然後他們使用HTTPWebRequest創建一個WebRequest並在HTTP POST中追加這個圖像。

對提出請求的整個代碼---

WebRequest request = WebRequest.Create(url); 
    request.Method = "POST"; 


    //Create the POST Data 

    FileUpload img = (FileUpload)imgUpload; 
    Byte[] imgByte = null; 
    if (img.HasFile && img.PostedFile != null) 
    { 
     imgByte = imgUpload.FileBytes; 
    } 
    string imgPh = null; 
    Encoding enc = Encoding.ASCII; 
    if (imgByte != null) 
    { 
     imgPh = enc.GetString(imgByte); 
    } 
    string postData = "sid=8062BD53EB4552AD6D0FBB7E5DC5B7AF&status=Y&uid=123456789012&fname=Dinesh Singh&lname=Malik&ftname=Balwan&yrbirth=1988&gender=Male&address1=Address1&address2=Address2&address3=Address3&address4=Address4&imagePh=" + imgPh; 


    byte[] post = Encoding.UTF8.GetBytes(postData); 


    //Set the Content Type 
    request.ContentType = "application/x-www-form-urlencoded"; 
    request.ContentLength = post.Length; 

    Stream reqdataStream = request.GetRequestStream(); 
    // Write the data to the request stream. 
    reqdataStream.Write(post, 0, post.Length); 

    reqdataStream.Close(); 

    // If required by the server, set the credentials. 
    request.Credentials = CredentialCache.DefaultCredentials; 
    WebResponse response = null; 
    try 
    { 
     // Get the response. 
     response = request.GetResponse(); 

    } 
    catch (Exception ex) 
    { 
     Response.Write("Error Occured."); 
    } 

在網頁是由哪個請求我使用

Encoding enc = Encoding.ASCII; 

    byte[] imagePhoto = enc.GetBytes(postData["imageph"]); 

從這裏再一次得到這個形象成字節我救它到我的數據庫

但是,當我使用處理程序檢索圖像時,它不顯示圖像。


的問題是從字節[]到字符串,然後將字符串轉換成字節[]在Web服務器的圖像的轉換。 (因爲當我在服務器上使用TestPage時沒有使用TestPage直接保存圖像時,它會顯示圖像。)

所以我在做什麼錯了。

在上面的代碼中還有什麼方法來獲取Web服務器接收到的HTTP Post數據(檢索HTTP頭)。 我想取出這個數據接收發回給其他開發研製的設備在相同的格式要求,因爲我在HTTP的Web請求的URL

任何幫助,我接受,將不勝感激。

回答

0

好吧我想我終於明白了。

我做什麼 -

圖片 - >字節[] - > Convert.ToBase64String - >追加字符串數據POST請求

在全服務器

得到這個職位數據 - > Convert.FromBase64String - >字節[] - >插入到數據庫

的偉大工程... :)

感謝