日期:2014-05-16  浏览次数:20823 次

var fd = new FormData();传不了数据
var fd = new FormData();
fd.append("FileData",document.getElementById('upload_file').files);
var xhr = XMLHttpRequest();
//xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.onreadystatechange=mycallback;
xhr.open("POST", url);
xhr.setRequestHeader("X-Requested-With","XMLHttpHequest");
xhr.setRequestHeader('Content-Type','multipart/form-data;boundary=---------------------------' + new Date().getTime());
xhr.send(fd);



不知道这些写是不是对的,但我传不了文到后台去
 string sPath = context.Server.MapPath(@"../../UploadFile");
            for (int i = 0; i < context.Request.Files.Count;i++ )
            {
                HttpPostedFile file = context.Request.Files[i];
                file.SaveAs(sPath + "\\" + file.FileName);
            }


后台调试时文件数总是0
前台调试时感觉 fd.append("FileData",document.getElementById('upload_file').files);
这句话没用添加数据进去一样
ie10 firfox22都是一样的
fd.append("FileData","sdfasd");连传文本都不行

还有一个我选了3个文,想取消其中一个该怎么做啊

------解决方案--------------------
fd.append("FileData",document.getElementById('upload_file').files[0]);


html5 ajax上传文件asp.net示例
------解决方案--------------------
先用ff调试一下,看看前台有没有传递数据
在百度一下Content-Type=multipart/form-data,设置了这个后不能直接得到文本值得
这个我前段时间做过,要做一些处理