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 ...
随机推荐
- jython
# -*- coding: utf-8 -*- import sys import json sys.path += ["C:/Users/yangbo/Desktop/restassure ...
- GitHub创建项目入门学习
第一次创建git项目注意事项还是挺多了,这里就写个操作步骤,方便以后查看. 网页部分 1.打开自己的主页,点击“New repository”创建远程仓库. 2.填写信息 本地部分 前提: 下载git ...
- web优化的方法
缓存(减小对服务器.数据库的压力) 生成静态页面(区别于缓存,数据量太大用“缓存”不利) URL重写(SEO,搜索引擎的优化) ajax的优化(SEO) <meta content=“” nam ...
- MYSQL 索引无效和索引有效的详细介绍
1.WHERE字句的查询条件里有不等于号(WHERE column!=...),MYSQL将无法使用索引 2.类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)= ...
- 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记2——透明贴图,动画技术
第5章 透明贴图 像这样直接贴图会产生这种情况,所以我们需要透明贴图. 透明遮罩法:主要利用BitBlt函数中Raser(光栅)值的运算,需要准备素材图和遮罩图: 这个方法的原理解释见书131页. 示 ...
- Python图像处理库(2)
1.4 SciPy SciPy(http://scipy.org/) 是建立在 NumPy 基础上,用于数值运算的开源工具包.SciPy 提供很多高效的操作,可以实现数值积分.优化.统计.信号处理,以 ...
- Markdown语法简编
[笔者按]Markdown语法的最大的特点在于原文语法少而简,内容纯文本化,且生成的版式简洁优雅.本文参考了一些网上的参考文字,经自行精简整理. 区块元素 段落和换行,标题,引用,列表,代码块,分隔线 ...
- 排序算法总结(C语言版)
排序算法总结(C语言版) 1. 插入排序 1.1 直接插入排序 1.2 Shell排序 2. 交换排序 2.1 冒泡排序 2.2 快速排序 3. 选择 ...
- CentOS7安装和配置rsync+inotify
(1)rsync介绍 1.rsync介绍 开源,实现全量及增量的本地或远程数据同步备份工具 2.工作场景: 存储实时备份:rsync+inotify 定时备份:rsync+crond 3.rsync工 ...
- Intellij IDEA 去掉Mapper文件中的背景
1.在setting中输入:inspection --> SQL 2.去掉背景颜色,Apply即可