3

我正在这样做:

 xhr.open('post', '/Fish/Create', true);
 xhr.send(file);

这会产生一个命中我的控制器方法的 HTTP 帖子,并且文件的内容被发布到它(正如我在提琴手中看到的那样)。

如何从 Request 对象中获取内容?

对于奖励积分,我想知道您是否可以使用标头或获取 HttpPostedFileBase 对象。我可以做类似的事情xhr.setRequestHeader("X-File-Name", "file");,然后在控制器方法中接受object file,但我无法弄清楚文件是什么类型,或者它是否甚至从流中正确创建它。

我不能使用 FormData,因为 IE9 不支持它。

4

2 回答 2

3

HttpPostedFileBase在您的控制器操作中放置一个类型的参数,如下所示:

 public ActionResult PostFile(HttpPostedFileBase httpPostedFile)
 {
     var stream  = httpPostedFile.InputStream;
 }
于 2012-12-05T14:40:16.293 回答
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 我希望它有帮助

于 2014-03-11T12:15:51.943 回答