2013-05-06 3 views
2

Я пытаюсь использовать FineUploader для отправки нескольких файлов на сервер на одной странице с помощью Asp-Net MVC 4. Я использую код из примеров:Загрузка вручную с FineUploader на MVC 4

HTML:

<div id="manual-fine-uploader"></div> 
<button id="triggerUpload" class="red text_only has_text" style="margin-top: 10px;"> 
     <span data-bind="text: 'Subir archivos'"></span> 
</button> 

JS:

$(document).ready(function() { 
       var manualuploader = $('#manual-fine-uploader').fineUploader({ 
        debug: true, 
        request: { 
         element: $('#manual-fine-uploader'), 
         endpoint: "SaveArchivos" 
        }, 
        autoUpload: false, 
        text: { 
         uploadButton: "<i class=\"icon-plus icon-white\"></i>"+i18n.t('seleccionarArchivos') 
        } 
       }); 

       $('#triggerUpload').click(function() { 
        manualuploader.fineUploader('uploadStoredFiles'); 
       }); 
      }); 

контроллер:

public class CondicionesComercialesController : Controller 
{ 
    ... 
    [HttpPost] 
    public FineUploaderResult SaveArchivos(FineUpload upload) 
    { 
     // asp.net mvc will set extraParam1 and extraParam2 from the params object passed by Fine-Uploader 

     var dir = @"e:\upload\path"; 
     var filePath = Path.Combine(dir, upload.Filename); 
     try 
     { 
      upload.SaveAs(filePath); 
     } 
     catch (Exception ex) 
     { 
      return new FineUploaderResult(false, error: ex.Message); 
     } 

     // the anonymous object in the result below will be convert to json and set back to the browser 
     return new FineUploaderResult(true, new { extraInformation = 12345 }); 
    } 
    ... 
    } 

Запрос поступает на серверную сторону, но параметр upload всегда равен нулю. Я думаю, что я пропускаю некоторый идентификатор на стороне клиента, но я не могу найти что-либо в документации, указывающей, где ее установить. Есть идеи?

+0

Используете ли вы тот же пример, который указан на странице https://github.com/Widen/fine-uploader-server/tree/master/ASP.NET%20MVC%20C%23? –

+0

Да, те же классы. Я не знаю, правильный ли код js. – Niko316

+0

Вы прошли через ModelBinder? Что вы видите, когда запрос попадает на сервер? –

ответ

1

Я нашел свою ошибку. Я пропускал ModelBinder линию в классе FineUpload (на стороне сервера):

using System.IO; 
    using System.Web.Mvc; 

    namespace Vizion.Web.UI.Helpers 
    { 

     [ModelBinder(typeof(ModelBinder))] 

     public class FineUpload 
     { 
     ... 

Теперь он отлично работает. Спасибо Рей Николосу!

+0

Добро пожаловать. Обязательно установите флажок рядом с вашим ответом, чтобы отметить его как принятый. –

+0

SO не позволяет мне делать это сейчас. Я должен подождать до завтра, чтобы проверить это. – Niko316

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