.NET中的FileUpload控件的使用-原生JS(二)
本篇使用原生JS进行数据传输,使用FileUpload控件上传文件,适配IE。
HTML
<div class="container">
<div class="row">
<input type="file" formenctype="multipart/form-data" id="files" multiple name="files" /><button class="btn-default" id="UploadButton">点我上传</button>
</div>
</div>
JS
<script type="text/javascript">
var fileData = new FormData();
fileData.enctype = "multipart/form-data";//给定数据传输格式
window.onload = function () {
document.getElementById("UploadButton").onclick = function () {
debugger;
fileData.append("subject", "哈哈哈");
fileData.append("remark", "");
var files = document.getElementById("files").files;
if (files.length > ) {
for (var i = ; i < files.length; i++) {
fileData.append(files[i].name, files[i]);
}
}
//var filedata = json.stringify(data);
SpadesQ({
url: '/IENotes/Create',
method: 'POST',
async: false,
contentType: false,
processData: false,
data: fileData,
success: function (result) {
alert(result);
},
error: function (error) {
alert(error);
}
});
}
}
</script>
用原生JS封装了一个简易的Ajax
/*封装Ajax函数
@param {string} opt.type http 连接的方式 包括POST、GET
@param {string} opt.url 请求的地址
@param {boolean} async 是否异步
@param {object} otp.data 请求发出的数据
@param {boolean} otp.contentType 传输中的数据格式
@param {boolean} otp.processData 是否将数据序列化
@param {function} success 请求成功后的回调
@param {function} error 出错后的回调
*/
function SpadesQ(opt) {
debugger;
opt = opt || {};
opt.method = (opt.method || 'GET').toUpperCase();
opt.url = opt.url || '';
opt.async = opt.async || false;
opt.contentType = opt.contentType || false; //contentType设为false,不修对象改格式
opt.processData = opt.processData || false;//不对数据对象做序列化操作
opt.data = opt.data ||{};
opt.success = opt.success || function () { };
opt.error = opt.error || function () { };
var xmlHttp = null;
if (XMLHttpRequest) {
xmlHttp = new XMLHttpRequest;
} else {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
if (opt.method.toUpperCase() === 'POST') {
xmlHttp.open(opt.method, opt.url, opt.async);//因为此处是为了完整的将FormData对象传送至到action中,所以没有对数据做任何改变,有需要对数据格式进行处理的另当别论。
//xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charest=utf-8');
xmlHttp.send(opt.data);
} else if(opt.method.toUpperCase()==='GET') {
xmlHttp.open(opt.method, opt.url + '?' + opt.data, opt.async);
xmlHttp.send();
}
xmlHttp.onreadystatechange = function () {
if (xmlHttp.status == && xmlHttp.readyState == ) {
opt.success(xmlHttp.responseText);
} else {
opt.error(xmlHttp.responseText);
}
};
}
后台逻辑
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控件的使用-原生JS(二)的更多相关文章
- 使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传
Anthem.NET刚刚发布了其最新的1.5版本,其中很不错的一个新功能就是对文件上传功能的Ajax实现.本文将简要介绍一下该功能的使用方法. Anthem.NET的下载与安装 Anthem.NET可 ...
- .NET中的FileUpload控件的使用-Jquery(一)
FileUpload在HTML中是个常用的基础控件,在涉及到上传各种格式的文件时候都会用到:笔者前段时间正好用到它做上传功能,记录下来做一些累积, 前端到后台用的是的Jquery中的Ajax进行数据传 ...
- FileUpload控件使用初步
FileUpload控件使用初步 FileUpload控件使用初步: 1.实现文件上传 protected void btnSubmit_click(object sender, EventArg ...
- asp.net中的ListBox控件添加双击事件
问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...
- Asp.net中FileUpload控件实现图片上传并带预览显示
单一图片上传——“选择”+“上传”,.NET默认模式: 1.实现原理: 采用FileUpload控件默认的使用方式,先由“选择”按钮选择图片,然后单击“上传”按钮完成上传,并可在“上传”按钮的 ...
- 关于ASP.NET中fileupload控件的缺点
一.首我来理一理“FileUpload”控件的工作大概原理: FileUpload 控件显示一个文本框控件和一个浏览按钮,使用户可以选择客户端上的文件并将它上载到 Web 服务器.用户通过在控件的文本 ...
- C# 自定义FileUpload控件
摘要:ASP.NET自带的FileUpload控件会随着浏览器的不同,显示的样式也会发生改变,很不美观,为了提高用户体验度,所以我们会去自定义FileUpload控件 实现思路:用两个Button和T ...
- webform FileUpload控件实例应用 上传图片
首先在根目录下建一个"images"文件: HTML: <form id="form1" runat="server"> < ...
- WebForm之FileUpload控件(文件上传)
FileUpload控件要与Button.LinkButton.ImageButton配合使用 FileUpload控件的方法及属性: 1.SaveAs("要上传到服务器的绝对路径" ...
随机推荐
- luoguP1090 合并果子 (贪心+优先队列)
题目链接:https://www.luogu.org/problemnew/show/P1090 思路: 典型的贪心题,显然每次选择两个最小的堆合并最后耗费的体力最少,但每次合并之后都需要寻找最小的两 ...
- .net使用httpHandler添加图片防盗链
.net使用httpHandler添加图片防盗链1. 配置web.config: <!--图片添加水印的配置--> <httpHandlers> <add verb=&q ...
- C++ 模板的全特化与偏特化
模板为什么要特化,因为编译器认为,对于特定的类型,如果你能对某一功能更好的实现,那么就该听你的. 模板分为类模板与函数模板,特化分为全特化与偏特化.全特化就是限定死模板实现的具体类型,偏特化就是如果这 ...
- oracle 使用正则表达式获取字符串中包含的数字
select REGEXP_REPLACE('字符串中包含的数字123,提取后就是123', '[^0-9]', '') from dual;
- python数据类型内部结构解剖
一.前言 我们知道,python是一种动态语言,可以将任何类型的数据赋给任何变量,譬如: # Python代码 x = 4 x = "four" 这里已经将 x 变量的内容由整型转 ...
- java POI创建Excel示例(xslx和xsl区别 )
Java用来处理office类库有很多,其中POI就是比较出名的一个,它是apache的类库,现在版本到了3.10,也就是2014年2月8号这个版本. 在处理PPT,Excel和Word前,需要导入以 ...
- Halcon中数据的四舍五入、取整、有效数字以及和字符串之间的转换
*此代码可直接复制到HDevelop中运行 a:= 3.456 *取整.取最近的整数 int_a := int(a) //取整数部分,结果是3 round_a := round(a) //将输入元组转 ...
- windows常用运行命令总结
开始→运行→命令集锦 winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序 ...
- 修改socket缓冲区大小
#include <stdio.h>#include <sys/time.h>#include <sys/types.h>#include <sys/sock ...
- Maven系列(十)发布自己的项目到 Maven 中央仓库
Maven 发布自己的项目到 Maven 中央仓库 可能很多人都在用 Maven 仓库,但是如果要问怎么发布项目到中央仓库,估计很多人都不知道了,下面本篇文章带大家往中央仓库发布一个自己的 Maven ...