Asp.net Mvc Ajax 文件上传

前台Js文件代码

关于FormData

设置全局变量

var formData=new FormData;

在这里要说明的是FormData在 IE浏览器所使用的扩展方法少之又少,如果开发不需要兼容IE的话可以放心使用,火狐没试过。

>//给formData添加元素(IE 谷歌可用)
formData.append("key",value)
//获取到formData的key对应的value(谷歌可用 IE不可用)
formData.get("key")
//获取到formData的key对应的所有value(谷歌可用 IE不可用) 返回的是一个集合
formData.getAll("key")

如何在IE浏览器中删除formData里面的值
答案是:不可以的
我们可以换种思路来看
1 将所有的对象添加至Array
2 删除Array里面指定的对象
3 在点击上传之后循环Array,依次FormData.append()

var array= new Array();
//将一个对象添加至Array
array.push();
//删除Array里面指定的对象

//抓取名称
	 $(document).delegate(".isdelete", "click", function () {
	        var initDel = $(this).attr('data-name');
	)}

//用一层if判断名称相同然后移除掉
	for(int i =0;i<Array.length;i++)
	{
	if(Array[i].filename==initDel)
		{
			FormData.splice($.inArray(initDel, FormData[i]), 1)
		}
	}

ajax提交数据

//数据的提交三个属性不能忽略
enctype: “multipart/form-data”,
processData: false,
contentType: false,

//遍历添加至formData
 $.ajax({
                type: 'POST',
                url: url,
                data: formData,
                dataType: 'json',
                //下面三个属性是不能缺失的
                enctype: "multipart/form-data",
                processData: false,
                contentType: false,
                beforeSend: function () {
                    $("#btn_onsubmit").attr('disabled', 'disabled');
                    $("#btn_onsubmit").text('提交中...');
                },
                success: function (rsp) {
                },
                error: function (msg) {
            })

控制台接受数据

public ActionResult Index(FormCollection form)
{
//获取到文件对象的集合
 HttpFileCollectionBase hpf = Request.Files;
 int length = hpf.Count;
	 for(int =0;int <length;i++)
	 {
	 	 string fileName = hpf[i].FileName;
	 	 //获取到文件名 IE中获取到的是C:\Users\Desktop\TEST.类似的完整文件名需要验证
	 	 //谷歌浏览器是类似于Test的文件名
	 	  string oldFileName = System.IO.Path.GetFileName(fileName);
	 	  //然后就是将文件上传至ftp或者服务器
	 	  var ftpup = new FtpFileUploader(hpf[i], ftp_user, ftp_pwd);
           ftpup.UploadCheck();
           ftpup.FileName = newfilename;
           ftpup.Upload(uri);
	 }
}

小知识点

再补充一个小知识点
给文本框输入数字时选中单选按钮

 <input type="radio" name="Cutting_condition" class="cutting_speed" id="opt1" />
 <input type="number" placeholder="请输入..." class="Conditions" onfocus="opt1.checked =true" onblur="opt1.value=this.value" oninput="value=value.replace(/[^\d]/g,'')"/>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值