2012-01-06 7 views
0

mvc api 및 콘솔 응용 프로그램에서 서비스로 사용하고 있습니다.콘솔에서 mvc로 파일 보내기

MVC의 코드는 다음과 같습니다

[HttpPost] 
    public ActionResult Index(HttpPostedFileBase file) 
    { 

     if (file.ContentLength > 0) 
     { 
      var fileName = System.IO.Path.GetFileName(file.FileName); 
      var path = System.IO.Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 
      file.SaveAs(path); 
     } 

     return RedirectToAction("Index"); 
    } 

내가 다른 접근을 시도하고 내가 MVC 측면에서 file == null에 불과, 어떤 도움을받을 수 없다?

+2

콘솔 응용 프로그램에서 요청을 작성한 방법을 설명 할 수 있습니까 (코드 표시 가능)? – GolfWolf

+0

은 요청입니다. 파일이 채워 졌습니까? – Pbirkoff

+0

파일이 실제로 메서드로 전달되었는지 확인 했습니까? 길이가 실제로 0보다 큰지? 편집 : 이 [Phil Haack의 블로그 게시물] (http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx)이 질문에 대한 대답 인 것 같습니다. – crunchy

답변

1

제대로 이해하면 콘솔 응용 프로그램 내에서 컨트롤러에서이 특정 메서드가 실행되도록 웹 요청을 작성하려고합니다.

1) 브라우저와 방법을 테스트 :

는 상관없이 문제가 무엇인지,이 그것을 디버깅 할 수있는 적절한 방법입니다. 올바르게 작동 할 때까지 디버그/수정하십시오. 2) 올바른 HTTP 요청을 도청하기 위해 HTTP 디버거를 사용 (피들러는 3) 콘솔 응용 프로그램 내에서 WebRequest를 사용하는) 일을하고 매개 변수 세트를 모방 할 수 있도록 매개 변수를 정교하게해야한다는 Fidder

과 스니핑

완료되었습니다.

이 방법이 작동하지 않습니다. 응용 프로그램 서버는 요청을 트리거 한 클라이언트를 알 수 없습니다. 브라우저 요청이 올바르게 작동하면 WebRequest을 사용하여 동일한 매개 변수 집합을 모방 할 수 있는지 확인하십시오. 그리고 Fiddler (또는 유사)는 POST 매개 변수가 무엇인지 찾아내는 데 도움을 줄 수 있습니다.

나에게

- 대부분의 아마 당신은 다음과 같습니다

A) 파일 잘못 전달 (잘못된 인코딩, POST 매개 변수 사이의 잘못된 분리) (경계) b)는 요청 유형을 설정하지 않는 제대로

어쨌든 - 코드가 없어도 말할 수 없으므로 문제를 직접 해결할 수있는 알고리즘을 제공하고 있습니다.