2016-11-27 29 views
-1

我需要vb.net中mvc應用程序的幫助。一般而言,我需要通過視圖接收圖像,並讓它在控制器上工作。我需要這樣做將圖像轉換爲字節數組並將其保存到oracle數據庫。所以我的想法是獲取圖像並在控制器中將其轉換爲字節數組,或者可以通過某種方式將圖像作爲字節數組獲取,並將該數組傳遞給控制器​​以將其保存到數據庫。以字節數組形式獲取vbhtml視圖的圖像並將其保存到oracle數據庫

像這樣的我的觀點:

<div class="span11">  
      <div class="span4" id="depnac"> 
       @Html.LabelFor(Function(m) m.DepNacPER) 
       @Html.DropDownListFor(Function(m) m.DepNacPER, Model.DepNacPER, New With {.class = "form-control"}) 
     </div> 

,這是我的模型:

<Display(Name:="Region of birth")> 
<Required(ErrorMessage:="you must select a option")> 
Property DepNacPER As SelectList 

回答

0

我工作的ASP.NET應用程序的核心,現在是上傳圖片。圖像通過請求作爲Stream傳遞給控制器​​。然後,我從Stream創建一個Image對象,但您可以直接從中讀取數據。也就是說,您可能想嘗試創建一個Image對象以確認數據確實代表有效的圖像。

下面是從視圖的腳本的一些相關代碼:

function uploadImage() 
{ 
    // This is a file upload control in a hidden div. 
    var image = $("#imageFile"); 

    if (image[0].files.length > 0) 
    { 
     var formData = new FormData(); 

     formData.append(image[0].files[0].name, image[0].files[0]); 

     var xhr = new XMLHttpRequest(); 

     xhr.open("POST", "@Url.Content("~/events/uploadimage")"); 
     xhr.send(formData); 
     xhr.onreadystatechange = function() 
     { 
      if (xhr.readyState === 4 && xhr.status === 200) 
      { 
       var response = JSON.parse(xhr.responseText); 

       if (response.saveSuccessful) 
       { 
        // ... 
       } else 
       { 
        window.location.replace("@Url.Content("~/error")"); 
       } 
      } 
     } 
     xhr.onerror = function(err, result) 
     { 
      alert("Error: " + err.responseText); 
     } 
    } 
} 

我在與一些jQuery的,做繁重,但還沒有得到那麼遠,替換該代碼的過程很。

下面是從操作一些相關代碼:

[HttpPost] 
    public IActionResult UploadImage() 
    { 
     var requestForm = Request.Form; 
     StringValues tempImageFileNames; 
     string tempImageFileName = null; 
     string imageUrl = null; 
     var saveSuccessful = true; 
     var requestFiles = requestForm.Files; 

     if (requestFiles.Count > 0) 
     { 
      // A file has been uploaded. 
      var file = requestFiles[0]; 

      using (var stream = file.OpenReadStream()) 
      { 
       try 
       { 
        using (var originalImage = System.Drawing.Image.FromStream(stream)) 
        { 
         // Do whatever you like with the Image here. 
        } 
       } 
       catch (Exception) 
       { 
        saveSuccessful = false; 
       } 
      } 
     } 

     if (saveSuccessful) 
     { 
      return Json(new {saveSuccessful, tempImageFileName, imageUrl}); 
     } 
     else 
     { 
      return Json(new {saveSuccessful}); 
     } 
    } 

對不起,它並沒有在第一,你VB代碼後是發生在我,這是C#。希望你仍然可以得到這個想法,如果有人不喜歡這個答案,我會採取這種做法。

相關問題