我这样做:
xhr.open('post', '/Fish/Create', true);
xhr.send(file);
这会产生一个HTTP帖子,它会命中我的控制器方法,并且文件的内容会被发布到它(正如我在fiddler中看到的那样)。
如何从Request对象中获取内容?
对于奖励积分,我想知道你是否可以使用标题或获取HttpPostedFileBase对象。我可以执行类似xhr.setRequestHeader("X-File-Name", "file");
的操作,然后在控制器方法中接受object file
,但我无法确定文件的类型,或者它是否从流中正确创建它。
我无法使用FormData,因为它在IE9中不受支持。
答案 0 :(得分:3)
在控制器操作中放置HttpPostedFileBase
类型的参数,如下所示:
public ActionResult PostFile(HttpPostedFileBase httpPostedFile)
{
var stream = httpPostedFile.InputStream;
}
答案 1 :(得分:2)
试试这个
public JsonResult UploadPure()
{
string fileName = Request.Headers["X-File-Name"];
string fileType = Request.Headers["X-File-Type"];
int fileSize = int.Parse(Request.Headers["X-File-Size"]);
System.IO.Stream fileContent = Request.InputStream;
System.IO.FileStream fileStream = System.IO.File.Create(Server.MapPath("~/") + fileName);
fileContent.Seek(0, System.IO.SeekOrigin.Begin);
fileContent.CopyTo(fileStream);
fileStream.Dispose();
return Json("Uploaded files");
}
这对我有用,了解更多信息 http://ajeeshms.in/Blog/Article/1/upload-files-using-ajax-in-asp-mvc 我希望它有所帮助