利用js插件实现

<script src="@Url.Content("~/js/layer/jquery.form.min.js")"></script>

实例代码

前端:

@using WebSearch.EFDB;
@{ ViewBag.Title = "UploadFeeCertificate";
NoveltyProxy proxy = ViewData["Proxy"] as NoveltyProxy;
} <!DOCTYPE html>
<html>
<head>
<title></title>
<script src="@Url.Content("~/js/jquery-2.1.1.js")"></script> <link href="@Url.Content("~/css/bootstrap.min.css")" rel="stylesheet">
<link href="@Url.Content("~/font-awesome/css/font-awesome.css")" rel="stylesheet">
<link href="@Url.Content("~/css/plugins/iCheck/custom.css")" rel="stylesheet">
<link href="@Url.Content("~/css/animate.css")" rel="stylesheet">
<link href="@Url.Content("~/css/style.css")" rel="stylesheet">
<script src="@Url.Content("~/js/jquery-ui-1.10.4.min.js")"></script>
<script src="@Url.Content("~/js/bootstrap.min.js")"></script>
<script src="@Url.Content("~/js/bootstrap-table.js")"></script>
<script src="@Url.Content("~/js/bootstrap-table-zh-CN.js")"></script>
<script src="@Url.Content("~/js/selectjs/bootstrap-select.js")"></script>
<link href="@Url.Content("~/js/selectjs/bootstrap-select.min.css")" rel="stylesheet" />
<script src="@Url.Content("~/js/selectjs/defaults-zh_CN.js")"></script>
<script src="@Url.Content("~/js/layer/layer.js")"></script>
<script src="@Url.Content("~/js/bootstrap.min.js")"></script>
<script src="@Url.Content("~/js/plugins/metisMenu/jquery.metisMenu.js")"></script>
<script src="@Url.Content("~/js/plugins/slimscroll/jquery.slimscroll.min.js")"></script> <!-- Custom and plugin javascript -->
<script src="@Url.Content("~/js/inspinia.js")"></script>
<script src="@Url.Content("~/js/plugins/pace/pace.min.js")"></script> <!-- iCheck -->
<script src="@Url.Content("~/js/plugins/iCheck/icheck.min.js")"></script>
<!-- Jvectormap -->
<script src="@Url.Content("~/js/plugins/jvectormap/jquery-jvectormap-2.0.2.min.js")"></script>
<script src="@Url.Content("~/js/plugins/jvectormap/jquery-jvectormap-world-mill-en.js")"></script>
<script src="@Url.Content("~/js/JsIFrame.js")"></script>
<script src="@Url.Content("~/js/layer/jquery.form.min.js")"></script> </head> <body onload="IFrameResize()">
<div style="background-color:#f3f3f3;height:100%">
<div class="row">
<div class="col-lg-12">
<div class="ibox float-e-margins"> <div class="ibox-title">
<h5>缴费单据上传</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-wrench"></i>
</a>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<form id="editform" method="post" enctype="multipart/form-data">
<div class="ibox-content">
<div class="form-group"> <p>
委托单:<input type="text" value="@proxy.PrjName_cn" readonly="readonly" style="width:25%;height:30px;margin-bottom:8px;border: 1px solid #ddd;">
<input type="hidden" name="proxyid" value="@proxy.ID" />
<input type="hidden" id="ispay" value="@proxy.IsPayed" />
</p> <p>选择上传文件:<input id="lefile" name="lefile" type="file" accept="image/*"></p>
<p><input type="button" id="submitPic" class="btn btn-w-m btn-success" value="提交" /></p>
</div> </div>
</form>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(function () { $("#submitPic").click(function () { $("#editform").ajaxSubmit({
url: "../FeeHistory/AjaxUploadFee",
success: function (data) {
var t = $.parseJSON(data);
if (t.Result == true) {
alert("上传成功!");
location.href = "../NoveltyProxy/ProxyManage"
} else {
alert("上传失败!");
}
}
}); }) });
</script> </body> </html>

2.后端代码:

 /// <summary>
/// AJAX提交上传收费凭据form
/// </summary>
/// <returns></returns>
public string AjaxUploadFee()
{
RoleUser login = System.Web.HttpContext.Current.Session["Login"] as RoleUser;
FeeHistory model = new FeeHistory();
model.Addtime = DateTime.Now;
model.AddUserId = login.ID;
model.AddUserName = login.UserName;
model.ProxyID = Request.Form["proxyid"];
model.AdminChecked = false;
HttpPostedFileBase uploadFile = Request.Files["lefile"] as HttpPostedFileBase; if (uploadFile != null)
{ int last = uploadFile.FileName.LastIndexOf(".");
string name = uploadFile.FileName.Substring(last, uploadFile.FileName.Length - last);
string docxname = "缴费说明" + DateTime.Now.ToString("yyyyMMddHHmmss") + name;
string pathForSaving = Server.MapPath("~/Word/JFSM/" + docxname);
uploadFile.SaveAs(pathForSaving);
if (System.IO.File.Exists(pathForSaving))
{
model.ImgUrl = "../Word/JFSM/" + docxname;
}
}
bool result = Fls.AddFeeHistory(model);
string Msg = "";
var Mod = new
{
Result = result,
Msg = Msg
};
string json = JsonConvert.SerializeObject(Mod);
return json;
}

注意。

 Request.Form[]是根据控件的Name获取的,并不是ID。jq用久了可能会遗忘这个事情。

Ajax 提交表单【包括文件上传】的更多相关文章

  1. ajax提交表单,支持文件上传

    当我们提交表单但是又不想要刷新页面的时候就可以考虑使用ajax来实现提交功能,但是这有个局限就是当有文件上传的时候是行不通的,下面借助于jquery.form可以很方便满足我们的需求.   1.表单写 ...

  2. php使用jquery Form ajax 提交表单,并上传文件

    在html5中我们通过FormData就可以ajax上传文件数据,不过因为兼容问题.我们选用jquery.form.min.js来进行ajax的表单提交.   一.jquery.form.js下载地址 ...

  3. ajax提交表单包括文件

    <script src="${pageContext.request.contextPath}/assets/js/jquery-1.8.3.js"></scri ...

  4. Struts2文件上传(基于表单的文件上传)

    •Commons-FileUpload组件 –Commons是Apache开放源代码组织的一个Java子项目,其中的FileUpload是用来处理HTTP文件上传的子项目   •Commons-Fil ...

  5. [原创]java WEB学习笔记49:文件上传基础,基于表单的文件上传,使用fileuoload 组件

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. 表单多文件上传样式美化 && 支持选中文件后删除相关项

    开发中会经常涉及到文件上传的需求,根据业务不同的需求,有不同的文件上传情况. 有简单的单文件上传,有多文件上传,因浏览器原生的文件上传样式及功能的支持度不算太高,很多时候我们会对样式进行美化,对功能进 ...

  7. 4 django系列之HTML通过form标签来同时提交表单内容与上传文件

    preface 我们知道提交表单有2种方式,一种直接通过submit页面刷新方法来提交,另一种通过ajax异步局部刷新的方法提交,上回我们说了通过ajax来提交文件到后台,现在说说通过submit来提 ...

  8. php+form表单的文件上传

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 2020最新Servlet+form表单实现文件上传(图片)

    servlet实现文件上传接受 这几天学了一点文件上传,有很多不会,在网查了许多博客,但是最新的没有,都比较久了 因为我是小白,版本更新了,以前的方法自己费了好久才弄懂,写个随笔方便以后查找 代码奉上 ...

  10. form表单多文件上传

    1.html/jsp主页 <%@ page language="java" contentType="text/html; charset=UTF-8" ...

随机推荐

  1. 003 - 修改Pycharm的项目文件树样式

    相信习惯了Eclipse或者Windows的小伙伴对于Pycharm的目录树一定觉得特别别扭 因为它总是在文件前加一个三角形标注, 这样的标注在视觉上十分误导层级关系 修改的方式为   File -& ...

  2. C++模板之函数模板实例化和具体化

    模板声明 template<typename/class T>,  typename比class最近后添加到C++标准. 常规模板,具体化模板,非模板函数的优先调用顺序. 非模板函数(普通 ...

  3. CF 757E Bash Plays with Functions——积性函数+dp+质因数分解

    题目:http://codeforces.com/contest/757/problem/E f0[n]=2^m,其中m是n的质因子个数(种类数).大概是一种质因数只能放在 d 或 n/d 两者之一. ...

  4. phpStorm的远端部署

    首先远端服务器的路径: /var/www -rwxrwxrwx jiangzhaowei jiangzhaowei 6月 index.html* lr-xr-xr-x root root 2月 php ...

  5. ZOJ3201(树形DP)

    Tree of Tree Time Limit: 1 Second      Memory Limit: 32768 KB You're given a tree with weights of ea ...

  6. POJ2406(next原理理解)

    Power Strings Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 40448   Accepted: 16828 D ...

  7. 20个Flutter实例视频教程-第04节: 不规则底部工具栏制作-2

    视频地址: https://www.bilibili.com/video/av39709290/?p=4 博客地址: https://jspang.com/post/flutterDemo.html# ...

  8. PHP实用小程序(七)

    <? //用COOKIE保存投票人的投票记录 if($vote && !$already_voted) SetCookie("already_voted",& ...

  9. 微信API接口文档

    传送门

  10. Unity NGUI学习

    环境 Unity4.3    NGUI v3.68 导入 Project界面->右键->import package->custom package载入安装包即可 untiy4.6用 ...