C# mvc 上传多个附件
<div class="col-xs-12 mcp-list-item" style="margin-top:20px">
<div class="mcp-list-item-title">附件</div>
<input onchange="upload()" id="uploadFile" name="uploadFile" placeholder="多个请按下Ctrl后选取文件" type="file" value="文件选取" multiple="multiple">
</div>
<div class="col-xs-12 mcp-list-item">
<a class="btn btn-success" onclick="btn_upload()"><i class="fa fa-upload"></i>开始上传</a>
</div> //下面这一段代码是用来显示图片容器的
<div id="imgList">
<img id="fileUrl" style="width: 100px; height: 100px; border-radius: 100px;" />
</div> <div id="fileList"> </div>
//图片上传
function upload() { var f1 = document.getElementById('uploadFile').files;
if (f1.length>0) {
var form = $('#imgList');
for (var i = 0; i < f1.length; i++) { var src1 = window.URL.createObjectURL(f1[i]);
var imgid='fileUrl_'+i;
var oldElement = $('#fileUrl');
var newElement = $(oldElement).clone();
$(oldElement).attr('id', imgid);
$(oldElement).before(newElement);
$(oldElement).appendTo(form);
$(oldElement).attr('src', src1);
// $('#' + imgid).src = src1
}
} //var f = document.getElementById('uploadFile').files[0]; //var src = window.URL.createObjectURL(f);
//var filetype = "GIF,JPEG,JPG,PNG,pdf";
//document.getElementById('fileUrl').src = src; //if (f == null || f == "") {
// dialogMsg('请选择文件!', 0);
// return;
//} else if (f != "" && f != undefined && f != null) {
// var imgtype = ff.toLowerCase().split('.');
// if (filetype.indexOf(imgtype[1].toUpperCase()) == -1) {
// dialogMsg('图片类型必须是.gif,jpeg,jpg,png,pdf中的一种!', 0);
// return;
// }
//} }
function btn_upload() { var refids = [];
var rows = $('#Delivery_Grid').datagrid('getRows');
$.each(rows, function (index, item) {
refids.push(item.reforderid); }); var numArr = [];
var txt = $("#fileList").find("input:file"); //获取所有上传附件框
for (var i = 0; i < txt.length; i++) {
numArr.push(txt.eq(i).attr('id')); //将附件框的ID添加到数组中
} if (!$('#formState').Validform()) {
return false;
}
var postData = $("#formState").GetWebControls(); $.ajaxFileUpload({
url: "/TMS.Service/ServiceMilestone/UploadFile?reforderid=" + refids.join(','),
secureuri: false,
fileElementId: 'uploadFile',
dataType: 'json',
//data: postData,
success: function (data) {
if (data.status) {
dialogMsg(data.message, 1); document.getElementById('fileUrl').src = "";
document.getElementById('uploadFile').src = ""; } else {
dialogMsg(data.msg, 0);
}
}
}); }
记得引入 <script src="~/Content/scripts/uploadify/ajaxfileupload.js"></script>
后台代码:
[HttpPost]
public ActionResult UploadFile(MilestoneInfo minfo)
{ try
{ var filelist = new List<Cargo.Entity.FileInfoEntity>();
if (minfo == null)
{
throw new Exception("找不到milestone节点所属的业务信息 ");
} if (Request != null && Request.Files != null && Request.Files.Count > )
{
string FileServerUrl = ConfigurationManager.AppSettings["FileServerUrl"].ToString();
string serverBasePath = AppDomain.CurrentDomain.BaseDirectory + @"Upload\temp\";
DirectoryInfo dir = new DirectoryInfo(serverBasePath);
if (!dir.Exists)
{
dir.Create();
}
foreach (string fileStr in Request.Files)
{
HttpPostedFileBase file = Request.Files[fileStr] as HttpPostedFileBase;
if (file != null && file.ContentLength > )
{
string filename = Path.GetFileName(file.FileName);
string savePath = serverBasePath + @"\" + filename;
var fileExtName = Path.GetExtension(savePath);
file.SaveAs(savePath);
string uploadDate = DateTime.Now.ToString("yyyyMMdd");
string address = FileServerUrl + $"Home/UploadFile?module={TMS_Enum.TMS_SysFileInfoEnum.TMS_module.ToString()}&folderId={TMS_Enum.TMS_SysFileInfoEnum.TMS_folderId.ToString()}&uploadDate=" + uploadDate;
var buffer = new WebClient().UploadFile(address, "post", savePath);
string result = Encoding.UTF8.GetString(buffer); var serverFilePath = FileServerUrl + result.Replace("~/", ""); //最终服务器存储的地址
//判断文件是不是存在 清空临时存储的文件
if (System.IO.File.Exists(savePath))
{
//如果存在则删除
System.IO.File.Delete(savePath);
}
filelist.Add(new Cargo.Entity.FileInfoEntity
{
FileExtensions = fileExtName,
FilePath = serverFilePath,
FileName = filename, });
}
} } //这里为了避免上传文件事务长时间锁死,所以放置到这里进行操作,先上传耗时的文件操作,再考虑操作数据库
SaveMilestone(
minfo,
filelist);
return new ResponseModel { status = true, msg = "提交成功!" }; }
catch (Exception ex)
{ return new ResponseModel { status = false, msg = ex.Message };
} }



C# mvc 上传多个附件的更多相关文章
- Spring MVC上传文件
Spring MVC上传文件 1.Web.xml中加入 <servlet> <servlet-name>springmvc</servlet-name> <s ...
- MVC上传文件
ASP.NET MVC上传文件是必段撑握的知识.加强训练才是.以前Insus.NET曾使用第三方MyAjaxForm.js :http://www.cnblogs.com/insus/p/378548 ...
- Spring MVC 上传文件
Spring MVC上传文件需要如下步骤: 1.前台页面,form属性 method设置为post,enctype="multipart/form-data" input的typ ...
- MVC:上传文件
今天写了一个使用MVC上传的DEMO,很简单不超过10行代码.代码如下(关注重点,所以尽量精简掉其他代码): 项目结构
- 解决spring mvc 上传报错,Field [] isn't an enum value,Failed to convert value of type 'java.lang.String[]' to required type '
没有选择附件,但是点击上传按钮的时候会报错. 之前不选择文件,直接上传空文件是可以的,后来不知道改了什么就不行了. 错误信息: -- :: [http--] TRACE org.springframe ...
- asp.net mvc上传头像加剪裁功能
原文:asp.net mvc上传头像加剪裁功能 正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jqu ...
- mvc上传头像加剪裁功能
asp.net mvc上传头像加剪裁功能 正好项目用到上传+剪裁功能,发上来便于以后使用. 我不能告诉你们其实是从博客园扒的前台代码,哈哈. 前端是jquery+fineuploader+jquery ...
- ASP.NET Core MVC上传、导入、导出知多少
前言 本君已成夜猫子,本节我们来讲讲ASP.NET Core MVC中的上传,这两天才研究批量导入功能,本节顺便简单搞搞导入.导出,等博主弄妥当了再来和大家一并分享. .NET Core MVC上传 ...
- .Net mvc 上传多文件
.net mvc 上传多文件有很多种方式,我的方法只是其中一种, 仅供参考,我主要是注重参数传递的过程,后面文件保存的地方省略.. 调试环境 vs2017 控制器代码: [HttpPost] publ ...
随机推荐
- centos rar 文件打开办法
http://hi.baidu.com/nmxiaoxin/item/7642a139918a95677d034b6a Centos下解压rar.zip文件的方法 ============zip文件的 ...
- 解决sql server中批处理过程中“'CREATE/ALTER PROCEDURE 必须是查询批次中的第一个语句”
在批处理中加字段或表或视图或存储过程是否存在的判断 -----------------------------------------line----------------------------- ...
- 排名函数row_number() over(order by)用法
1. 定义 简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY [列名]DESC) 是先把[列名]降序排列,再为降序以 ...
- JDBC数据源连接池(4)---自定义数据源连接池
[续上文<JDBC数据源连接池(3)---Tomcat集成DBCP>] 我们已经 了解了DBCP,C3P0,以及Tomcat内置的数据源连接池,那么,这些数据源连接池是如何实现的呢?为了究 ...
- jQuery使用blur()方法触发两次的解决方法
在项目中的textarea在是去焦点时对文本内容进行验证,这时候使用了blur方法,但是实现时blur的回调函数执行了两次,这里我也不知道为什么,然后就尝试先解除blur事件绑定,然后再绑定blur事 ...
- Xshell 找到上次执行的命令
ctrl + p 返回上一次输入命令字符 ctrl + r 输入单词搜索历史命令
- hdu 1864(01背包,输入处理真烦)
最大报销额 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- http之post方法 提交数据的四种方法
http协议中,post方法用来向服务端提交数据, 这里介绍四种方式: application/x-www-form-urlencoded multipart/form-data applicatio ...
- AC日记——文化之旅 洛谷 P1078
文化之旅 思路: 暴搜,倒搜: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 105 #define max ...
- win10的VMware虚机host-only模式下,虚拟机无法ping通物理机,而物理机能ping通虚机
1.打开控制面板—->Windows防火墙(win10操作系统) 2.点击最上面的”允许应用或功能通过xxxxx” 3.勾上上图的“文件和打印机共享” 然后点确定.