3

私はこれをやっています:

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

これにより、コントローラーメソッドにヒットするHTTPポストが生成され、ファイルの内容がそれにポストされます(fiddlerで確認できます)。

Requestオブジェクトからコンテンツを取得するにはどうすればよいですか?

ボーナスポイントについては、ヘッダーを使用できるのか、HttpPostedFileBaseオブジェクトを取得できるのか疑問に思います。私は次のようなことを行うことができxhr.setRequestHeader("X-File-Name", "file");、コントローラーメソッドでacceptobject fileを実行できますが、ファイルのタイプがわかりません。また、ファイルがストリームから正しく作成されたかどうかもわかりません。

IE9でサポートされていないため、FormDataを使用できません。

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 に答える