一、前端cshtml代码

 <tr>
<td width="130" align="right">添加附件:</td>
@using (Html.BeginForm("FileUp", "Detail", FormMethod.Post, new { enctype = "multipart/form-data", id = "formFileUpload" }))
{ <td>
<input name="file" type="file" value="浏览..." id="uploadFile" style="display: none;" />
<input type="text" class="fj_nr" id="filePath" />
</td>
<td>
<input type="button" value="浏览..." class="fh_btn" id="btnSee">
<input type="submit" value="上传" class="fh_btn" id="btnUploadFile" />
</td>
}
</tr>
<tr id="attachMents">
</tr>

二、JS代码

(function () {
var replyJs = replyJs || {};
replyJs.unitls = (function () {
var controller = '/RenosData.Fax.Web/Detail';
var homeController = '/RenosData.Fax.Web/Home';
//传真回复
var replyFax = function () {
//浏览附件
$("#btnSee").bind("click", function (e) {
$("#uploadFile").click();
});
//上传附件
$("#uploadFile").bind("change", function (e) {
$("#filePath").val($("#uploadFile").val());
});
$("#btnUploadFile").click(function () {
addAttachment();
return false;
}); //删除传真附件
$("#btnDelAttach").live("click",function () {
$.ajax({
url: controller + '/DelAttachment',
type: 'post',
//dataType: 'json',
data: "{file:'" + $(this).attr("filename") + "'}",
contentType: 'application/json; charset=utf-8',
success: function (data) {
if (data.status == "success") {
$("#attachMents").empty();
} else {
alert(data.message);
}
},
error: function (err) {
alert(err.toString());
}
});
});
//发送传真
$("#btnSendFax").click(function () {
addFaxToDb("send");
});
};
//上传附件
var addAttachment = function () {
if (!$("#filePath").val()) {
alert("请选择需要上传的文件!");
return;
}
//function showRequest(formData, jqForm, options) {
// //alert('发送前');
// return true;
//}
//function showResponse(responseText, statusText) {
// //alert('发送后');
//}
//var options = {
// //target: '#outputdiv',
// beforeSubmit: showRequest,
// success: showResponse
//};
//$(this).ajaxSubmit(options);
$("#formFileUpload").ajaxSubmit({
dataType: 'json',
beforeSend: function (xhr) { },
success: function (data) {
if (data) {
if (data.message == "success") {
$("#filePath").val("");
$("#attachMents").empty().append("<td width='130' align='right'>已上传附件:</td><td><label id='lblFileName'>" + data.fileOldName + "</label></td><td><input type='button' value='删除' class='fh_btn' id='btnDelAttach' filename='" + data.fileName + "' filesize='" + data.fileSize + "'></td>");
} else {
alert(data.message);
}
}
},
complete: function () { }
});
return;
};
//传真状态:发送or保存 var back = function () {
window.history.go(-1);
}; return {
replyFax: replyFax,
};
}()); $(function () {
replyJs.unitls.replyFax();
});
})(jQuery);

三、Controller代码

 /// <summary>
/// 添加附件
/// </summary>
/// <returns></returns>
[HttpPost]
public ActionResult FileUp()
{
HttpPostedFileBase uploadFile = Request.Files[];
var fax = new FaxModel();
if (uploadFile == null || uploadFile.ContentLength == )
{
fax = new FaxModel() { Message = "请选择上传附件!", Attachment = null };
return Json(new { message = fax.Message });
}
//if (uploadFile.ContentLength > 20971520)
//{
// fax = new FaxModel() { Message = "请上传20MB以内的附件!", Attachment = null };
// return View("NewFax", fax);
//}
try
{
var newFileName = Guid.NewGuid() + "_" + uploadFile.FileName; ;
string attachFilePath = WebConfig.Attachment;
if (!Directory.Exists(attachFilePath))
Directory.CreateDirectory(attachFilePath);
string filePath = Path.Combine(attachFilePath, newFileName);
uploadFile.SaveAs(filePath);
var attachment = new FileAttachmentModel()
{
FileName = newFileName,
FileLength = (uploadFile.ContentLength * 1.0 / ).ToString("0.00"),
FilePath = filePath,
FileOldName = uploadFile.FileName,
FileSize = uploadFile.ContentLength
};
fax = new FaxModel() { Attachment = attachment };
ViewBag.FaxMsg = uploadFile.FileName;
return Json(new { message = "success", fileOldName = attachment.FileOldName, fileSize = attachment.FileSize, fileName = attachment.FileName });
}
catch (Exception)
{
return Json(string.Empty);
}
}

附件删除

 /// <summary>
/// 附件删除
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost]
public ActionResult DelAttachment(string file)
{
try
{
string attachFilePath = WebConfig.Attachment;
string filePath = Path.Combine(attachFilePath, file);
if (System.IO.File.Exists(filePath))
{
System.IO.File.Delete(filePath);
return Json(new { status = "success" });
}
return Json(new { status = "false", message = "附件删除失败!" });
}
catch (Exception ex)
{
return Json(new { status = "false", message = "附件删除失败!" });
}
}

ajaxForm.js

MVC + ajaxform 文件上传的更多相关文章

  1. Spring MVC实现文件上传

    基础准备: Spring MVC为文件上传提供了直接支持,这种支持来自于MultipartResolver.Spring使用Jakarta Commons FileUpload技术实现了一个Multi ...

  2. MVC之文件上传1

    MVC之文件上传 前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public Act ...

  3. Asp.net mvc 大文件上传 断点续传

    Asp.net mvc 大文件上传 断点续传 进度条   概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...

  4. Spring MVC的文件上传

    1.文件上传 文件上传是项目开发中常用的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这种情况下,浏览器才会把用户 ...

  5. Spring MVC的文件上传和下载

    简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...

  6. 整合MVC实现文件上传

    1.整合MVC实现文件上传整合MVC实现文件上传在实际的开发中在实现文件上传的同时肯定还有其他信息需要保存到数据库,文件上传完毕之后需要将提交的基本信息插入数据库,那么我们来实现这个操作.整个MVC实 ...

  7. 【Spring学习笔记-MVC-13】Spring MVC之文件上传

    作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...

  8. MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器

    MVC图片上传.浏览.删除   1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...

  9. spring mvc ajaxfileupload文件上传返回json下载问题

    问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/ad ...

随机推荐

  1. 如何使用 URLOpenStream 函数

    URLOpenStream 和 URLDownloadToFile 类似, 都是下载文件的 COM 函数; 前者是下载到 IStream 流, 后者是直接下载到指定路径; 不如后者使用方便. 它们都声 ...

  2. level 1 -- unit 2 - what 引导的特殊疑问句

    特殊疑问句 what 引导的特殊疑问句 常见结构如下: 1. what be sb/sth? 1.1 如 谓语动词是单数is what is your phone number ? what is y ...

  3. Visual Studio快捷键大全

    快捷键的使用可以简化大家的操作,在一定程度上提高工作的效率,下文中将为大家介绍一些VS中经常用到的快捷键,希望对大家有用. 方法/步骤   关于解决方案和项目   用于快速跳转   用于代码的文本编辑 ...

  4. 【QT】Cannot find file: untitled.pro,项目路径不要包含中文。

    Cannot find file: D:\文件及下载相关\文档\untitled\untitled.pro. 17:01:45: 进程"D:\Englishpath\QT5.9.3\5.9. ...

  5. Ubuntu16.04下安装CUDA8.0和tensorflow

    GPU版的Tensorflow无疑是深度学习的一大神器,当然caffe之类的框架也可以用GPU来加速训练. 注意:以下安装默认为python2.7 1. 安装依赖包 $ sudo apt-get in ...

  6. mysql数据库中查看当前使用的数据库是哪个数据库?

    环境描述: mysql版本:5.5.57-log 操作系统版本:Red Hat Enterprise Linux Server release 6.6 (Santiago) 需求说明: 查看当前使用的 ...

  7. Dubbo -- 系统学习 笔记 -- 成熟度

    Dubbo -- 系统学习 笔记 -- 目录 成熟度 功能成熟度 策略成熟度 啦啦啦

  8. mongodb 搭建主从服务器

    mongodb 主从配置比较简单,只需要在启动的时候添加参数(-master.-slave -source IP:PORT). Ubuntu 16.04 系统环境 监听端口分别为:27010.2701 ...

  9. 小物件之checkbox复选框

    有时候需要输出一组checkbox复选框,并且做根据选定元素将其选中的功能,以往都要在模板中循环输出checkbox标签,同时加以判断是否需要选中,这样就会造成很多开始闭合标签 以前都是这样写 现在我 ...

  10. 如何构建日均千万PV Web站点(二) 之~缓存为王~

    随着网站业务的不断发展,用户的规模越来越大:介于中国无比蹩脚复杂的网路环境:南电信:北联通:中间竟然只用一条链路进行互联通信!有研究表明,网站访问延迟和用户流失率正相关,网站访问速度越慢,用户越容易失 ...