一、前端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. level 6 - unit4 - 强调句

    强调句 强调实义动词 范围: 一般现在时/一般过去式:肯定句 方法:v.前面加do/does/did 例子: i love you --> i do love you i loved you - ...

  2. 在Unity中查找缺失的引用

    这篇博客是查找unity中缺失引用的一个简单简短的解决方案.你可以从GitHub上获取源码. 缺失引用 一个丢失引用与没有引用(在检视表显示“None”)是完全不同的概念.这些友各种原因造成,比如:把 ...

  3. Android 应用授权访问GooleDrive

    Refer:https://developers.google.com/drive/auth/android   Go to the Google Cloud Console. Select a pr ...

  4. 【scala】 scala xml 处理(⑨)

    1.scala 处理xml 2. 获取属性 3.修改节点 4.遍历 5.模式匹配 6.命名空间 7.文件加载 import scala.xml._ /** * @author xwolf * @sin ...

  5. okHttp3自用封装

    okHttp都已经出到3.2.0了,现在才开始要用到它,感觉自己好low~~ 根据平时自己的习惯,还是自己做一下封装,让代码撸起来更加顺畅一点! okhttp-3.2.0和okio-1.7.0就不多说 ...

  6. 2、一、Introduction(入门):1、Application Fundamentals(应用程序基础)

    一.Introduction(入门) 1.Application Fundamentals(应用程序基础) Android apps are written in the Java programmi ...

  7. 8 -- 深入使用Spring -- 4...3 AOP的基本概念

    8.4.3 AOP的基本概念 AOP从程序运行角度考虑程序的流程,提取业务处理过程的切面.AOP面向的是程序运行中各个步骤,希望以更更好的方式来组合业务处理的各个步骤. AOP框架并不与特定的代码耦合 ...

  8. CentOS7图形界面启动报错unable to connect to X server

    以前还可以正常启动图形界面,这次启动失败,报错unable to connect to X server 使用的是oracle用户,因为我是在oracle用户下创建的oracle数据库等 解决办法: ...

  9. curl 上传文件

    1)在 php 5.5.0 之前,如果使用 @+文件路径的文件上传文件,具体看这里:http://www.cnblogs.com/tujia/p/5938463.html 2)php 5.5.0 之后 ...

  10. 善用 CSS 中的 table-layout 屬性加快 Table 的顯示速度

    在很久以前我們都是用 Table 在排版的,我相信現在還是有不少人還是在用 Table 進行排版而非現在較為流行的 CSS 排版,使用 Table 排版最大的好處就是版面在各瀏覽器中顯示比較不會亂掉. ...