首页 > 代码库 > 【转】利用Ajax.BeginForm提交文件
【转】利用Ajax.BeginForm提交文件
Ajax.BeginForm
@using (Ajax.BeginForm("YourAction", "YourController", new AjaxOptions() { HttpMethod = "POST" }, new { enctype = "multipart/form-data"})){ @Html.AntiForgeryToken() <input type="file" name="files"><br> <input type="submit" value="http://www.mamicode.com/Upload File to Server">}
Action Method
[HttpPost] [ValidateAntiForgeryToken] public void YourAction(IEnumerable<HttpPostedFileBase> files) { if (files != null) { foreach (var file in files) { // Verify that the user selected a file if (file != null && file.ContentLength > 0) { // extract only the fielname var fileName = Path.GetFileName(file.FileName); // TODO: need to define destination var path = Path.Combine(Server.MapPath("~/Upload"), fileName); file.SaveAs(path); } } } }
【引者注.有时加入 [ValidateAntiForgeryToken]注解会出错,具体原因不明,可删除这行注释】
Progress Bar
<div class="progress progress-striped"> <div class="progress-bar progress-bar-success">0%</div> </div><div id="status"></div>
Jquery & Form script
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script><script src="http://malsup.github.com/jquery.form.js"></script><script>(function() {var bar = $(‘.progress-bar‘);var percent = $(‘.progress-bar‘);var status = $(‘#status‘);$(‘form‘).ajaxForm({ beforeSend: function() { status.empty(); var percentVal = ‘0%‘; bar.width(percentVal) percent.html(percentVal); }, uploadProgress: function(event, position, total, percentComplete) { var percentVal = percentComplete + ‘%‘; bar.width(percentVal) percent.html(percentVal); }, success: function() { var percentVal = ‘100%‘; bar.width(percentVal) percent.html(percentVal); }, complete: function(xhr) { status.html(xhr.responseText); }}); })(); </script>
【转】利用Ajax.BeginForm提交文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。