MVC + ajaxform 文件上传
一、前端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 = "附件删除失败!" });
}
}
MVC + ajaxform 文件上传的更多相关文章
- Spring MVC实现文件上传
基础准备: Spring MVC为文件上传提供了直接支持,这种支持来自于MultipartResolver.Spring使用Jakarta Commons FileUpload技术实现了一个Multi ...
- MVC之文件上传1
MVC之文件上传 前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public Act ...
- Asp.net mvc 大文件上传 断点续传
Asp.net mvc 大文件上传 断点续传 进度条 概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...
- Spring MVC的文件上传
1.文件上传 文件上传是项目开发中常用的功能.为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data.只有在这种情况下,浏览器才会把用户 ...
- Spring MVC的文件上传和下载
简介: Spring MVC为文件上传提供了直接的支持,这种支持使用即插即用的MultipartResolver实现的.Spring MVC 使用Apache Commons FileUpload技术 ...
- 整合MVC实现文件上传
1.整合MVC实现文件上传整合MVC实现文件上传在实际的开发中在实现文件上传的同时肯定还有其他信息需要保存到数据库,文件上传完毕之后需要将提交的基本信息插入数据库,那么我们来实现这个操作.整个MVC实 ...
- 【Spring学习笔记-MVC-13】Spring MVC之文件上传
作者:ssslinppp 1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Co ...
- MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器
MVC图片上传.浏览.删除 1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...
- spring mvc ajaxfileupload文件上传返回json下载问题
问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/ad ...
随机推荐
- cp -rf 提示覆盖解决办法
cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当文件比较少的时候还可以按Y确认,当很多文件的时候就不好说了 方法一:vi ~/.bashrc # .bashrc # User specific ...
- 虚拟机中安装linux系统步骤
参考:http://blog.csdn.net/u013111221/article/details/50856934 后面参考:http://blog.csdn.net/chenweitang123 ...
- jsp新建项目
1.在原有项目的基础上新建一个文件夹 在文件夹内新建一个jsp文件 取名 JSP容器处理JSP文件需要以下三个阶段:翻译——编译——执行 JSP的页面元素包括 静态内容-HTML静态文本 指令-以“& ...
- Ubuntu下用matplotlib作图时显示中文
之前在Ubuntu下用matplotlib作图的时候发现无法正常显示中文,查了一番以后发现是Ubuntu系统和matplotlib库没有共同可显示的中文字体库的原因.用此文章的方法可以解决这一问题. ...
- Go之函数直接实现接口
//1.定义一个接口 type Run interface { Runing() } //2.定义一个函数类型 type Runer func() //3.让函数直接实现接口 func (self R ...
- 使用srvany.exe将程序安装成windows服务的详细教程
srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srva ...
- jquery 动态展示查询条件
<table class="queryTable" width="100%" > <tr> <td class="que ...
- 【抓包分析】 charles + 网易mumu 模拟器数据包
charles 的使用.我就不再多说了.可以参考以往文章,传送门: https://www.cnblogs.com/richerdyoung/p/8616674.html 此处主要说网易模拟器的使用 ...
- 【cs229-Lecture4】GLMS:选定指数分布族,如何用它来推导出GLM?
在Lecture4中有3部分内容: Newton’s method 牛顿方法 Exceponential Family 指数分布族 Generalized Linear M ...
- Esper学习之七:EPL语法(三)
1.Aggregation 和SQL一样,EPL也有Aggregation,即聚合函数.语法如下: aggregate_function([all|distinct] expression) aggr ...