2015-09-30 4 views
-2

У меня естьзагрузка файлов в ASP.NET MVC C#

[HttpPost] 
public ActionResult GetFiles(HttpPostedFileBase file) 
{ 
    if (file != null && file.ContentLength > 0) 
    {    
     var fileName = Path.GetFileName(file.FileName); 
     var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 
     file.SaveAs(path); 
    } 
    return Json("Uploaded " + Request.Files.Count + " files",JsonRequestBehavior.AllowGet); 
} 

Теперь я хочу, чтобы загрузить файлы в Ajax и сохранение файлов другой папки. Как получить файлы из формы ввода и отправить ее через Ajax?

+0

Вы не указали свой призыв ajax. Вам нужно использовать 'FormData', отправляя файлы с помощью ajax. См. [Этот пример] (http://stackoverflow.com/questions/29293637/how-to-append-whole-set-of-model-to-formdata-and-obtain-it-in-mvc/29293681#29293681) –

+0

Я стараюсь, не работает. Если вы знаете рабочую версию, скажите, пожалуйста, –

+0

Пробовал что? Вы не показали свой код, так как мы можем догадаться, что вы сделали неправильно –

ответ

0

Попробуйте это:

cshtml:

<input id="myFile" type="file" name="myfile" onchange="GoToPreview(this)" style="display: none"> 



function GoToPreview(input) { 
      if (input.files && input.files[0]) { 

       var tmpImageData = new FileReader(); 
       tmpImageData.onload = function (e) { 
        SetImageData(imageData);     
       } 
       tmpImageData.readAsDataURL(input.files[0]); 
      } 
    } 

function SetImageData(imageData) { 
     $.ajax({ 
      url: '/Home/SetImageData', 
      type: 'POST', 
      data: { imageData: imageData }, 
      success: function (data) { 
       // code here 
      }, 
      error: function (data) { 
       // code for exception 
      } 
     }); 
    } 

В SetImageData метод на стороне сервера делать свое дело.

0

Как @Reza Aghaei уже сказал, что вы можете использовать FormData, чтобы решить вашу проблему, но я рекомендую вам ajaxForm() метод от this library. Я использую этот подход becouse IE8 and IE9 do not support FormData

И это действительно нетрудно использовать.

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