2016-08-19 79 views
0

尝试使用jquery.filer将图像上传到我的控制器在asp.net mvc。如果我只是使用HTML文件输入类型,一切都按预期工作,但一旦启用该插件,它将停止填充HttpPostedFileBase属性。JQuery Filer提交文件提交

在阅读文档之后,我无法找到将文件附加到输入并在提交时上传它们的方法。

控制器

[HttpPost] 
    public ActionResult Create(IEnumerable<HttpPostedFileBase> files, ListingModel model) 
    { 
     return View(model); 
    } 

JS

$("#filer_input").filer({ 
    limit: 6, 
    maxSize: 5, 
    extensions: null, 
    changeInput: '<div class="jFiler-input-dragDrop"><div class="jFiler-input-inner"><div class="jFiler-input-icon"><i class="icon-jfi-cloud-up-o"></i></div><div class="jFiler-input-text"><h3>Drag&Drop files here</h3> <span style="display:inline-block; margin: 15px 0">or</span></div><a class="jFiler-input-choose-btn blue">Browse Files</a></div></div>', 
    showThumbs: true, 
    theme: "dragdropbox", 
    templates: { 
     box: '<ul class="jFiler-items-list jFiler-items-grid"></ul>', 
     item: '<li class="jFiler-item">\ 
        <div class="jFiler-item-container">\ 
         <div class="jFiler-item-inner">\ 
          <div class="jFiler-item-thumb">\ 
           <div class="jFiler-item-status"></div>\ 
           <div class="jFiler-item-info">\ 
            <span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\ 
            <span class="jFiler-item-others">{{fi-size2}}</span>\ 
           </div>\ 
           {{fi-image}}\ 
          </div>\ 
          <div class="jFiler-item-assets jFiler-row">\ 
           <ul class="list-inline pull-left">\ 
            <li>{{fi-progressBar}}</li>\ 
           </ul>\ 
           <ul class="list-inline pull-right">\ 
            <li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\ 
           </ul>\ 
          </div>\ 
         </div>\ 
        </div>\ 
       </li>', 
     itemAppend: '<li class="jFiler-item">\ 
         <div class="jFiler-item-container">\ 
          <div class="jFiler-item-inner">\ 
           <div class="jFiler-item-thumb">\ 
            <div class="jFiler-item-status"></div>\ 
            <div class="jFiler-item-info">\ 
             <span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\ 
             <span class="jFiler-item-others">{{fi-size2}}</span>\ 
            </div>\ 
            {{fi-image}}\ 
           </div>\ 
           <div class="jFiler-item-assets jFiler-row">\ 
            <ul class="list-inline pull-left">\ 
             <li><span class="jFiler-item-others">{{fi-icon}}</span></li>\ 
            </ul>\ 
            <ul class="list-inline pull-right">\ 
             <li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\ 
            </ul>\ 
           </div>\ 
          </div>\ 
         </div>\ 
        </li>', 
     progressBar: '<div class="bar"></div>', 
     itemAppendToEnd: true, 
     removeConfirmation: true, 
     _selectors: { 
      list: '.jFiler-items-list', 
      item: '.jFiler-item', 
      progressBar: '.bar', 
      remove: '.jFiler-item-trash-action' 
     } 
    }, 
    dragDrop: { 
     dragEnter: null, 
     dragLeave: null, 
     drop: null 
    }, 
    //uploadFile: { 
    // url: "./php/upload.php", 
    // data: null, 
    // type: 'POST', 
    // enctype: 'multipart/form-data', 
    // beforeSend: function(){}, 
    // success: function(data, el){ 
    //  var parent = el.find(".jFiler-jProgressBar").parent(); 
    //  el.find(".jFiler-jProgressBar").fadeOut("slow", function(){ 
    //   $("<div class=\"jFiler-item-others text-success\"><i class=\"icon-jfi-check-circle\"></i> Success</div>").hide().appendTo(parent).fadeIn("slow");  
    //  }); 
    // }, 
    // error: function(el){ 
    //  var parent = el.find(".jFiler-jProgressBar").parent(); 
    //  el.find(".jFiler-jProgressBar").fadeOut("slow", function(){ 
    //   $("<div class=\"jFiler-item-others text-error\"><i class=\"icon-jfi-minus-circle\"></i> Error</div>").hide().appendTo(parent).fadeIn("slow");  
    //  }); 
    // }, 
    // statusCode: null, 
    // onProgress: null, 
    // onComplete: null 
    //}, 
    addMore: false, 
    clipBoardPaste: true, 
    excludeName: null, 
    beforeRender: null, 
    afterRender: null, 
    beforeShow: null, 
    beforeSelect: null, 
    onSelect: null, 
    afterShow: null, 
    //onRemove: function(itemEl, file, id, listEl, boxEl, newInputEl, inputEl){ 
    // var file = file.name; 
    // $.post('./php/remove_file.php', {file: file}); 
    //}, 
    onEmpty: null, 
    options: null, 
    captions: { 
     button: "Choose Files", 
     feedback: "Choose files To Upload", 
     feedback2: "files were chosen", 
     drop: "Drop file here to Upload", 
     removeConfirmation: "Are you sure you want to remove this file?", 
     errors: { 
      filesLimit: "Only {{fi-limit}} files are allowed to be uploaded.", 
      filesType: "Only Images are allowed to be uploaded.", 
      filesSize: "{{fi-name}} is too large! Please upload file up to {{fi-maxSize}} MB.", 
      filesSizeAll: "Files you've choosed are too large! Please upload files up to {{fi-maxSize}} MB." 
     } 
    } 
}); 

HTML

     <div class="form-group clearfix"> 
         <div class="col-sm-12 padding-left-0 padding-right-0"> 
          <input type="file" name="files" id="filer_input2" multiple="multiple"> 
         </div> 
        </div> 

回答

0

,如果你使用的是将无法正常工作和uploadFile功能。如果你想从<input type="file">获得文件,你将需要在你的jQuery.filer中禁用这2个选项