2016-11-27 27 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#。希望你仍然可以得到这个想法,如果有人不喜欢这个答案,我会采取这种做法。

相关问题