0

概要 :

plupload jquery を使用して複数のファイルをアップロードしましたが、保存ボタンを押すと HttpPostedFileBase で null 値が取得されます

コード :

   @{
    ViewBag.Title = "ImageUpload";
}
<link href="@Url.Content("~/Scripts/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css")"
    rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Scripts/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css")"
    rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/plupload/js/plupload.full.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/plupload/js/jquery.ui.plupload.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js")" type="text/javascript"></script>

<script type="text/javascript">

    $(document).ready(function () {

        $("#uploader").pluploadQueue({
            // General settings
            runtimes: 'html5,html4,gears,flash,silverlight',
            url: '@Url.Action("UploadImage")',
            max_file_size: '10mb',
            chunk_size: '1mb',
            unique_names: true,
            button_browse_hover: true,
            multiple_queues: true,
            dragdrop: false,

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

            // Specify what files to browse for
            filters: [
            { title: "Image files", extensions: "jpg,gif,png,jpeg,bmp" },
            { title: "Zip files", extensions: "zip" },
            { title: 'PDF files', extensions: 'pdf' },
            { title: "Excel Files", extensions: "xls,xslx,csv" },

        ],



            // Silverlight settings
            silverlight_xap_url: '@Url.Content("~/Scripts/plupload/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) {

                if (uploader.files.length < 9) {
                    // When all files are uploaded submit form
                    uploader.bind('StateChanged', function () {
                        if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {

                            $('form')[1].submit();

                        }
                    });
                    uploader.start();
                } else {
                    alert('Number of files more than 8.');
                }
                return false;
            }
            else {
                alert('You must queue at least one file.');
            }
            return false;
        });



    });


</script>
@using (Html.BeginForm("ImageUpload", "Image", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <div id="uploader">
        <p>
            You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.</p>
    </div>
    <p>
        <input type="submit" value="Save" id="uploadFile" name="uploadFile" />
    </p>



}



In my controller  :

        public ActionResult ImageUpload()
        {
            return View();
        }

form の送信時に実行されるこのコントローラーがあります。

          [HttpPost]
          public string ImageUpload(HttpPostedFileBase FileData)
          {
            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!";
        }
4

1 に答える 1

0

url: '@Url.Action("UploadImage")' をurl: '@Url.Action("ImageUpload")' に置き換えます。

これは私のために働く

于 2013-08-24T07:29:34.053 に答える