2017-10-12 24 views
1

Angular Js 및 WEB API를 사용하여 클라이언트에서 서버로 파일을 찾아보고 업로드하려고합니다. 사용자가 입력 파일 유형을 사용하여 파일을 선택하고 게시합니다. 파일을 WEB API로 보냅니다. 웹 API에서 다음과 같은 오류가 발생합니다. "이 메서드 또는 속성은 HttpRequest.GetBufferlessInputStream이 호출 된 후에 지원되지 않습니다."
다음 코드를 사용하고 있습니다 : -HttpRequest.GetBufferlessInputStream이 호출 된 후에이 메소드 또는 속성이 지원되지 않습니다.

 public IHttpActionResult UploadForm() 
    { 
     HttpResponseMessage response = new HttpResponseMessage(); 
     var httpRequest = System.Web.HttpContext.Current.Request; 
     if (httpRequest.Files.Count > 0) 
     { 
      foreach (string file in httpRequest.Files) 
      { 
       var postedFile = httpRequest.Files[file]; 
       var filePath = System.Web.HttpContext.Current.Server.MapPath("~/UploadFile/" + postedFile.FileName); 
       postedFile.SaveAs(filePath); 
      } 
     } 
     return Json("Document Saved"); 
    } 

내가 HTTP 요청에서 파일을 얻기 위해 노력이 오류가 ... 나는 웹 설정에서 아무것도를 업데이트해야?

이 문제를 해결하는 데 도움주세요 ..

답변

0

나에게 잘 작동 해보십시오.

 //get the root folder where file will be store 
     string root = HttpContext.Current.Server.MapPath("~/UploadFile"); 

     // Read the form data. 
     var provider = new MultipartFormDataStreamProvider(root); 
     await Request.Content.ReadAsMultipartAsync(provider); 

     if (provider.FileData.Count > 0 && provider.FileData[0] != null) 
     { 
      MultipartFileData file = provider.FileData[0]; 

      //clean the file name 
      var fileWithoutQuote = file.Headers.ContentDisposition.FileName.Substring(1, file.Headers.ContentDisposition.FileName.Length - 2); 

      //get current file directory on the server 
      var directory = Path.GetDirectoryName(file.LocalFileName); 

      if (directory != null) 
      { 
       //generate new random file name (not mandatory) 
       var randomFileName = Path.Combine(directory, Path.GetRandomFileName()); 
       var fileExtension = Path.GetExtension(fileWithoutQuote); 
       var newfilename = Path.ChangeExtension(randomFileName, fileExtension); 

       //Move file to rename existing upload file name with new random filr name 
       File.Move(file.LocalFileName, newfilename); 

      } 
     } 
+0

안녕하세요 다음에 질문을하십시오. 응답이 당신에게 유익하고 답을 수락하는지 확인하십시오. –