2013-10-09 2 views
0

Я пытаюсь создать приложение для электронной торговли. Моя задача - сохранить изображение, которое пользователь загружаетСохранение изображения в базе данных в mvc

с его машины в базу данных оракула. Я создал тип данных blob для столбца, который

хранит изображение. Теперь

View Code

@using (Html.BeginForm()) 
{ 
    <div class="editor-field"> 
       @Html.TextBoxFor(m => m.Description, new { id = "txtDescription" }) 
       @Html.ValidationMessageFor(m => m.Description) 
      </div> 
      <div class="editor-label"> 
       @Html.Label("Upload your picture"); 
      </div> 
      <p> 
       <input type="file" id="imagesubmit" name="imagesubmit" value="Submit" 
onclick="saveuserinfo();"/> 
      </p> 
} 

Javascript код

код
function saveuserinfo() 
{ 
     var description = document.getElementById('txtDescription').value; 
     var imagefile = document.getElementById('imagesubmit'); 
     $.ajax({ 
      url: '@Url.Action("SaveuserInfo", "Welcome")', 
      data: { description: description,imagesubmit: imagesubmit}, 
      type: 'POST', 
      success: function (data) { 
          } 
     }); 
    } 

Контроллер

??? 

Мне нужен код контроллера в том, чтобы получить изображение из яваскрипт и передать его в слой DB для ввода

в базу данных.

Это то, что я пытался ..Is это правильный подход, чтобы сохранить изображение

public ActionResult saveuserinfo(string description,) 
    { 
     return View("WelcomePage"); 
    } 

(я застрял здесь с кодом, что тип данных я должен использовать здесь, чтобы получать изображение и что

тип данных я должен преобразовать и отправить его в БД СЛОЯ

+0

возможно дубликат [Загрузка файлов ASP.NET MVC 3.0] (http://stackoverflow.com/questions/5193842/file-upload-asp-net-mvc-3-0) –

+0

Не было бы лучше сохранить файл изображения, а затем сохранить местоположение файла в базе данных? –

ответ

0

Вы не можете загрузить файл с помощью JQuery AJAX, или любой другой формы простого XMLHttpRequest.

Вы должны использовать

@using (Html.BeginForm("YourAction", "YourController", FormMethod.Post, new { enctype = multipart/form-data" })) { 
// your form elements goes here, e.g <input type="file" ..... 
} 

В качестве альтернативы, если вы действительно хотите АЯКС чувствовать себя над вашей загрузки, вы должны смотреть на Fine Uploader: https://github.com/Widen/fine-uploader

+0

Это дало мне отправную точку. – user2465036

0

Вам нужно добавить параметр MultifilePart к вашему действию:.

public ActionResult saveuserinfo(@RequestParam MultipartFile image) {...} 

Параметр имеет методы, позволяющие получить доступ к байтам. Примечание. Вы можете читать поток только один раз!

Документация: http://docs.spring.io/spring/docs/3.2.1.RELEASE/spring-framework-reference/html/mvc.html#mvc-multipart

+0

Если я не ошибаюсь, вопрос касается ASP.NET MVC, а не Spring на java. –

+0

@JoeEnos: Это возможно. Я подожду его разъяснения. –

Смежные вопросы