FileUpload在HTML中是个常用的基础控件,在涉及到上传各种格式的文件时候都会用到;笔者前段时间正好用到它做上传功能,记录下来做一些累积,

前端到后台用的是的Jquery中的Ajax进行数据传输,在后台的逻辑处理中以HttpPostedFileBase的对象调用SaveAs(ServerSavePath)方法去存储到指定路径。

Microsoft在技术文档中是这样描述HttpPostedFileBase的

Serves as the base class for classes that provide access to individual files that have been uploaded by a client.
用于提供客户端上传的单个文件访问的类的基类
 
接下来看看如何实现:
HTML

  <div class="container">
<div class="row">
<input type="file" id="files" multiple name="files" /><button class="btn-default" id="UploadButton">点我上传</button>
</div>
</div>
JS
  $(function () {
$('#UploadButton').click(function () {
var data= new FormData();
var fileUpload = $("#files").get();
files = fileUpload.files;
if (files.length > ) {
for (var i = ; i < files.length; i++) {
data.append(files[i].name, files[i]); //FormData 是以键值对的形式模拟表单,然后以XMLHttpRequest请求出去。表单的enctype的属性为multipart/form-data
}
$.ajax({
url: '/IENotes/CommonFile,
type: "POST",
processData: false, // 不序列化,直接将data进行传输。
contentType: false, // 告诉jquery不要设置content-Type请求头,设置成true会对FormData的边界造成干扰,接收不到数据。
data: data,
success: function (result) {
//location.href("Index");
alert(result);
},
error: function (err) {
alert(err.statusText);
}
});
}
});
});
 后台
 public static bool CommonFile(){
var files = Request.Files.AllKeys.Distinct(); //将传输过来的files进行去重
if (files != null)
{
foreach (string each in files)
{
HttpPostedFileBase file = Request.Files[each] as HttpPostedFileBase; //注意,这里有一个对象类型转换的过程,需要将传过来的对象转换成HttpPostedFileBase对象
if (file != null)
{
var InputFileName = Path.GetFileName(file.FileName);
string str4 = AppDomain.CurrentDomain.BaseDirectory; //获取基目录,它由程序集冲突解决程序用来探测程序集。
var ServerSavePath = Path.Combine(Server.MapPath("~/Uploads/") );
if (!Directory.Exists(ServerSavePath))//检查路径是否存在
{
Directory.CreateDirectory(ServerSavePath);
}
var SavePath = Path.Combine(ServerSavePath ,InputFileName);
file.SaveAs(SavePath);
}
}
return true;
}
else
{
return false;
}
}
 感谢您的观看,您的

.NET中的FileUpload控件的使用-Jquery(一)的更多相关文章

  1. .NET中的FileUpload控件的使用-原生JS(二)

    本篇使用原生JS进行数据传输,使用FileUpload控件上传文件,适配IE. HTML <div class="container"> <div class=& ...

  2. 使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传

    Anthem.NET刚刚发布了其最新的1.5版本,其中很不错的一个新功能就是对文件上传功能的Ajax实现.本文将简要介绍一下该功能的使用方法. Anthem.NET的下载与安装 Anthem.NET可 ...

  3. FileUpload控件使用初步

    FileUpload控件使用初步   FileUpload控件使用初步: 1.实现文件上传 protected void btnSubmit_click(object sender, EventArg ...

  4. Asp.net中FileUpload控件实现图片上传并带预览显示

    单一图片上传——“选择”+“上传”,.NET默认模式: 1.实现原理:     采用FileUpload控件默认的使用方式,先由“选择”按钮选择图片,然后单击“上传”按钮完成上传,并可在“上传”按钮的 ...

  5. 关于ASP.NET中fileupload控件的缺点

    一.首我来理一理“FileUpload”控件的工作大概原理: FileUpload 控件显示一个文本框控件和一个浏览按钮,使用户可以选择客户端上的文件并将它上载到 Web 服务器.用户通过在控件的文本 ...

  6. C# 自定义FileUpload控件

    摘要:ASP.NET自带的FileUpload控件会随着浏览器的不同,显示的样式也会发生改变,很不美观,为了提高用户体验度,所以我们会去自定义FileUpload控件 实现思路:用两个Button和T ...

  7. webform FileUpload控件实例应用 上传图片

    首先在根目录下建一个"images"文件: HTML: <form id="form1" runat="server"> < ...

  8. WebForm之FileUpload控件(文件上传)

    FileUpload控件要与Button.LinkButton.ImageButton配合使用 FileUpload控件的方法及属性: 1.SaveAs("要上传到服务器的绝对路径" ...

  9. ASP.NET中 WebForm 窗体控件使用及总结【转】

    原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...

随机推荐

  1. Maximum Average Subarray I LT643

    Given an array consisting of n integers, find the contiguous subarray of given length k that has the ...

  2. docker下安装tomcat

    一,查看tomcat镜像 [root@icompany ~]# docker search tomcat INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED ...

  3. python之排列组合测试

    # test permutations and combinations import itertools as it for i in it.combinations('abcd',2): prin ...

  4. Spring配置ArgumentResolver,统一进行session鉴定

    一.编写WebMvcConfig配置类: 重写addArgumentResolvers方法,将解析类加入 @Configuration public class WebConfig extends W ...

  5. spring学习 十六 spring加载属性文件

    第一步:创建一个properties文件,以数据库链接作为实例db.properties jdbc.url=jdbc:mysql://192.168.153.128:3306/mybaties?cha ...

  6. 海港(NOIP2016)

    题目链接:海港 这一题怎么样呢?还好吧,也不是太难,没有用到什么特殊的算法,但写法还是很值得学习的.下面讲一下思路: 我们维护三个队列(这里我们采用自己手写的队列,因为这比STL的要快,不过这一题,S ...

  7. 关于oracle的锁表解决session marked for kill

    oracle 使用的过程中,有时候会遇到锁表的情况,数据库增.删.改.查都是会锁表的,但是锁的类型会不同, 大多是行锁,部分会是表锁. 在oracle运行中,一直是有表在锁的,只不过很快一个操作结束, ...

  8. Linux 文件授权

    Linux用户权限     在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,在Linux系统中,通过UID来区分用 ...

  9. git安装项目步骤

    1.git clone git@gitee(github).com:项目地址.git 2.cd 项目根目录 3.composer install 4.如果需要数据迁移,cmd中到项目根目录 php a ...

  10. 4-具体学习git--分支

    图形的方式显示日志:git log --oneline --graph 两种方式建立分支: 1.git branch dev,建立一个dev的分支 git branch 查看分支有哪些,星号在当前分支 ...