前言:一般情况下采用form表单,设置enctype="multipart/form-data" 即可实现附件上传功能,操作如下:
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" value="选择附件"/>
<input id="submit_form" type="submit" class="btn btn-success save" value="上传"/>
</form>
如果是Ajax异步上传附件,应采用FormData的方式,需要将所需的信息封装到FormData对象中
前台画面:
var file = $("#fileID")[0].files[0];//获取指定ID的文件信息
var formData = new FormData();//创建FormData对象,将所需的信息封装到内部,以键值对的方式
formData.append("file",file);//参数封装格式,可以是文件,亦可以是普通的字符串
$.ajax({
type:"post",
url:url,
async:false,
cache:false,//不需要缓存操作
data:formData,//传递的参数就是FormData
contentType:false,//由于提交的对象是FormData,所以要在这里更改上传参数的类型
processData:false,//提交对象是FormData,不需要对数据做任何处理
success:function(data){
........
},
complete:function(){
........
}
});
后台:
public string GetfromInfo(){
string ID = Request.Form(key);//通过封装的key获取画面上的信息,一般参数
HttpPostedFileBase file = Request.Files[key];//获取画面上文件的信息
.........
}