一、前端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. The difference between the request time and the current time is too large.阿里云oss上传图片报错

    The difference between the request time and the current time is too large. 阿里云oss上传图片的时候报错如上, 解决办法,把 ...

  2. symfony window下的安装 安装时候出现的问题以及解决方案

    1. cmd进入DOS  , cd 到 php.exe 的目录下 2.         php -r "readfile('http://symfony.com/installer');&q ...

  3. ios学习之UIWebView网页视图调整

    //先来一个可行的小Demo程序:结合searchBar的google搜索 #import <UIKit/UIKit.h> @interface ViewController : UIVi ...

  4. iOS AppsFlyer的使用注意事项

    AppFlyer 是近期比較火的一款广告追踪统计工具,当然统计的功能友盟也能够实现,而appsflyer更是具有定向投放,是app跳转到对应的页面. 详细的:当点击广告的时候,假设没有安装应用.则会跳 ...

  5. Tomcat------启动时报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].

    启动报错信息: Failed to start component [StandardEngine[Catalina].StandardHost[localhost] 因此出现这种错误的原因可能有: ...

  6. 3D物体识别的如果检验

    3D物体识别的如果验证 这次目的在于解释怎样做3D物体识别通过验证模型如果在聚类里面.在描写叙述器匹配后,这次我们将执行某个相关组算法在PCL里面为了聚类点对点相关性的集合,决定如果物体在场景里面的实 ...

  7. 一句话木马:PHP篇

    珍藏版: 一个简单的过D盾的免杀php <?php $ab = $_REQUEST['d']; $a['t'] = "";//主要带对象 D盾就不管后面的了... eval( ...

  8. c语言学习笔记---符号

    专题2.符号的技巧: 1) 注释符与转义符 vC语言中的接续符(\)是指示编译器行为的利器: 接续符的使用:编译器会将反斜杠剔除,嗯在反斜杠后面的字符自动解到前面的一行. 在接续单词时,反斜杠之后不能 ...

  9. Java中遍历字符串toCharArray()和charAt()效率比较

    public static void test() { String s = "a"; for(int i = 0; i < 100000; i++) { s += &quo ...

  10. eclipse项目中.classpath文件详解

    1 前言 在使用eclipse或者myeclipse进行java项目开发的时候,每个project(工程)下面都会有一个.classpath文件,那么这个文件究竟有什么作用? 2 作用 .classp ...