用formData传blob对象后台request.form取不到怎么办?

前端js代码

            var reader = new FileReader();
            reader.readAsArrayBuffer(file);    //文件是excel文件        
            reader.onload = function () {
                //alert("load");
                var blob = new Blob([reader.result]);
                //提交到服务器
                var fd = new FormData();
                fd.append('data', blob);
                fd.append('filename', file.name);
                var aa=fd.get('data');   ///这里可以取得文件
                var xhr = new XMLHttpRequest();
                xhr.open('post',
                    '../UploadExcel',
                    true);
                xhr.onreadystatechange = function () {
                    if (xhr.readyState == 4 && xhr.status == 200) {
                        var data = eval('(' + xhr.responseText + ')');
                        console.info(data);
                        if (data.success) {
                            //上传成功
                            var imgName = data.msg;
                            alert(imgName);
                        } else {
                            alert(data.msg);
                        }
                    }
                }
                //开始发送
                xhr.send(fd);
            }

后台c# 没有用任何框架,最基本的controller

[HttpPost]
        public string UploadExcel()
        {
            HttpRequestBase req = Request;
            string newname = Request.Form["filename"];
            Request.Form["data"];   //这是string类型的,而且Request.Form没有这个key
            return null;
        }

图片描述

阅读 4k
1 个回答
✓ 已被采纳新手上路,请多包涵

解决了,原来文件存放在Request.files里。。。Params和Form里只存放前台传来的普通的string字符串

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题