Как загрузить файлы с помощью plupload и asp.net mvc 3? - PullRequest
1 голос
/ 02 мая 2011

Мне интересно, как мне загрузить файлы с asp.net mvc 3 и плагином plupload

Я пробовал HttpPostedFileBase, но, кажется, он всегда нулевой;

Я нашел эту страницу но мне интересно, есть ли новые способы для asp.net mvc 3.

Я также не на 100% уверен в том, что происходит.Это на самом деле сохранение файла на сервер (App_data), как я этого не хочу.Я пытаюсь загрузить ics, а затем извлечь значения из ics и импортировать их в db.

Тогда избавьтесь от файла.Поэтому я не буду сохранять его на сервере при необходимости.

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Смотрите здесь:

$("#uploader").pluploadQueue({
         // General settings
         runtimes: 'silverlight',
         url: '/Home/Upload',
         max_file_size: '10mb',
         chunk_size: '1mb',
         unique_names: true,
         multiple_queues: false,

         // Resize images on clientside if we can
         resize: { width: 320, height: 240, quality: 90 },

         // Specify what files to browse for
         filters: [
            { title: "Image files", extensions: "jpg,gif,png" },
            { title: "Zip files", extensions: "zip" }
        ],

         // Silverlight settings
         silverlight_xap_url: '../../../Scripts/upload/plupload.silverlight.xap'
      });

      // Client side form validation
      $('form').submit(function (e) {
         var uploader = $('#uploader').pluploadQueue();

         // Files in queue upload them first
         if (uploader.files.length > 0) {
            // When all files are uploaded submit form
            uploader.bind('StateChanged', function () {
               if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
                  $('form')[0].submit();
               }
            });

            uploader.start();
         } else {
            alert('You must queue at least one file.');
         }

         return false;
      });

А в контроллере:

[HttpPost]
public string Upload(  ) {
          HttpPostedFileBase FileData = Request.Files[0];

          if ( FileData.ContentLength > 0 ) {
             var fileName = Path.GetFileName( FileData.FileName );
             var path = Path.Combine( Server.MapPath( "~/Content" ), fileName );
             FileData.SaveAs( path );
          }

          return "Files was uploaded successfully!";
       }

Вот и все ... В контроллере не требуется кусок ...

1 голос
/ 02 мая 2011

Убедитесь, что ваша форма содержит enctype = "multipart/form-data"

@using (Html.BeginForm("upload", "home", FormMethod.Post,
    new { enctype = "multipart/form-data" }))

И ваше имя для ввода

<input type="file" name="file" />

То же самое на контроллере

public ActionResult Upload(HttpPostedFileBase file)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...