多附件上传

html前台

<form action="/api/Manuscript/AddReviewOpinionFile" method="post" enctype="multipart/form-data">   //这个方法仅限于测试使用
选择图片: <input type="file" name="uploads" multiple >   //multiple  这个属性是在html5中新增一个附件文本框可上传多个附件
<input type="submit">
</form>

注: 在实际开发中应该是异步的form表单提交,而非同步

异步上传:

//方式1$(function ()

{   $(‘#form2‘).ajaxForm

({ success: function (responseText) { alert(responseText); } });

});

//这种方式是点击完windows文件框后执行ajax操作

//方式2(通过ajaxSubmit直接执行ajax操作)

$(function ()

{ $(".but2").click(function ()

{ $(‘#form2‘).ajaxSubmit({ success: function (responseText) { alert(responseText); } });

}); });

//这种方式是点击提交按钮执行ajax

注: 上述俩中方式需要导入jquery.jsjquery.form.js 俩个jquery包

//方式3

<input id="fileinfo" type="file" class="notFormFile" />
<button type="button" class="btnNotForm">上传4</button>
//方式4
$(".btnNotForm").click(function () {
    var formData = new FormData();//初始化一个FormData对象
    formData.append("files", $(".notFormFile")[0].files[0]);//将文件塞入FormData
    $.ajax({
        url: "/Home/SaveFile2",
        type: "POST",
        data: formData,
        processData: false,  // 告诉jQuery不要去处理发送的数据
        contentType: false,   // 告诉jQuery不要去设置Content-Type请求头
        success: function (responseText) {
            alert(responseText);
        }
    });
});

// c# 后台   :   这个附件上传是 传到当前解决方案的并集目录下的文件夹,

if(HttpContext.Current.Request.Files.Count>0)

{

string Audit = "被审计单位文件夹";
string path = HttpContext.Current.Server.MapPath("~/" + Audit + "\\");     //获取当前文件夹路径
string[] temp = path.Split("\\".ToCharArray());
string LevelPath = "";
for (int i = 0; i < temp.Length - 3; i++)
{
LevelPath += temp[i];
LevelPath += "\\";
}
var firstCatalog = LevelPath + Audit;
if (!Directory.Exists(firstCatalog))//如果不存在就创建file文件夹  
{
Directory.CreateDirectory(firstCatalog);
}
if (!Directory.Exists(firstCatalog + "\\" + AuditProjectId))//如果不存在就创建file文件夹
{
Directory.CreateDirectory(firstCatalog + "\\" + AuditProjectId);
}
var URL = firstCatalog + "\\" + AuditProjectId + "\\";
Guid identifier = Guid.NewGuid();

var httpfile = HttpContext.Current.Request.Files[i];   //获取当前文件夹
string suffix = httpfile.FileName.Substring(httpfile.FileName.LastIndexOf(‘.‘));   //获取文件夹后缀
if (httpfile != null)
{
httpfile.SaveAs(URL + identifier + suffix);  //保存文件流

#region 这些为返回值, 不需要择直接忽略
ReviewOpinionFileDTO opmodel = new ReviewOpinionFileDTO();
opmodel.ID = identifier;
opmodel.FileName = httpfile.FileName;
opmodel.FileSize = (httpfile.ContentLength / 1024) + "kb";
opmodel.FileURL = URL + identifier + suffix;
opmodel.FileType = suffix;

#endregion
return opmodel;
}

}

//http://www.cnblogs.com/zhaopei/archive/2017/07/24/upload.html

博主写的非常详细,实用

时间: 2024-08-03 03:22:52

多附件上传的相关文章

基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用

很久之前,当我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随笔<Web开发中的文件上传组件uploadify的使用>中可以看到,Asp.NET中如何使用这个组件进行文件上传的,当时上传文件的处理主要也是使用ashx一般处理程序来进行处理的.本文主要介绍我的Web开发框架中,在MVC4的环境中如何集成这个非常棒的文件上传组件的. 1.上传组件uploadify的说明及脚本引用 Uploadify 是 JQuery 一个著名的上传插件,利用 Flash

基础资料功能开发(附件上传、查看,获取当前用户信息、时间)

1.数据库建表.SYS_MODULE挂菜单.给菜单添加权限 2.创建Action.Dao.model.service... 3.struts-aqxx.xml配置 <action name="zlaqJczl/*" method="{1}" class="com.tech15.aqxx.action.ZlaqJczlAction"> <result name="*" type="direct&quo

基于MVC4+EasyUI的Web开发框架形成之旅(4)--附件上传组件uploadify的使用

大概一年前,我还在用Asp.NET开发一些行业管理系统的时候,就曾经使用这个组件作为文件的上传操作,在随笔<Web开发中的文件上传组件uploadify的使用>中可以看到,Asp.NET中如何使用这个组件进行文件上传的,当时上传文件的处理主要也是使用ashx一般处理程序来进行处理的.本文主要介绍我的Web开发框架中,在MVC4的环境中如何集成这个非常棒的文件上传组件的. 1.上传组件uploadify的说明及脚本引用 Uploadify 是 JQuery 一个著名的上传插件,利用 Flash

如何解决控件附件上传时超大附件无法上传的问题

起因: 我们的附件控件里边,一般情况下默认设置大小为10M,如果我们设置30M的情况,就无法满足上传了. 原因: 是因为我们ajax的一个文件里取我们控件自定义大小的值,无法取到.因为我们传的int类型的值,所以我们在用QueryString取的时候的值为Null. 解决: 打开Portal->Ajax->FileUploadHandler.ashx文件里,找到以下代码: Protected int MaxSize { get { if (!int.TryParse(Request.Query

Dynamic CRM 2013学习笔记(十三)附件上传 / 上传附件

上传附件可能是CRM里比较常用的一个需求了,本文将介绍如何在CRM里实现附件的上传.显示及下载.包括以下几个步骤: 附件上传的web页面 附件显示及下载的附件实体 调用上传web页面的JS文件 实体上r的上传按钮   首先来看一下效果: 先点击上面的上传按钮,然后就会弹出一个上传附件的界面,选择需要上传的文件,填写文件名,点击上传,成功后会在下面的文件grid里显示已上传的文件,双击下面的文件就会打开文件的详细信息: 然后还可以下载文件.   下面来看下实现方法 1. 附件上传的web页面 新建

ueditor调用其中的附件上传功能

ueditor实际上是集成了webuploader, 在做内容发布的时候想既有ueditor又有单独的附件上传按钮,这时再加载一个webuploader就显得过于臃肿了,单独利用ueditor的上传功能就比较合适了 首先是显示附件上传dialog,两种方式 ue.ui._dialogs["attachment" + "Dialog"](推荐); dialog = parent.$EDITORUI[window.frameElement.id.replace( /_i

使用plupload做一个类似qq邮箱附件上传的效果

公司项目中使用的框架是springmvc+hibernate+spring,目前需要做一个类似qq邮箱附件上传的功能,暂时只是上传小类型的附件 处理过程和解决方案都需要添加附件,处理过程和解决方案都可以添加多个附件,也可一个都不添加 以其中一个为例:(文件保存到了数据库中),有关plupload的内容可参考:http://www.360doc.com/content/14/0714/03/552866_394228686.shtml 首先是po package cn.com.plupload.p

asp.net结合uploadify实现多附件上传

1.说明 uploadify是一款优秀jQuery插件,主要功能是批量上传文件.大多数同学对多附件上传感到棘手,现将asp.net结合uploadfiy如何实现批量上传附件给大家讲解一下,有什么不对的地方还请大家多多交流沟通,下面把代码贴出来大家一起交流. 2.组成 首先说明一下代码实现所用到的技术,仅供参考: 开发工具:vs2010 目标框架:.NET Framework3.5 Uploadify:uploadify-v3.1 Jquery:jquery-1.8.1.js 最后我会将整个Dem

ajax实现附件上传

利用FormData实现附件上传(两种方式) var  reg=document.getElementById(’reg’); var fd = new FormData(reg); send(fd);   // fd里边有普通表单信息和附件信息 第二种方式 var mypic = document.getElementById(’myhead’).files[0];//获取file表单的文件对象 fd.append(’myhead’,mypic); send(fd); html5新标准,获取附