2014-01-13 7 views
0
내가 일하고 있어요

ASP.NET MVC의 다운로드HttpRequestMessage다운로드 zip 파일 : 컨트롤러

에 부착 된 zip 파일을 사용하여 웹 API의 같은

var task = this.Request.Content.ReadAsStreamAsync(); 
      task.Wait(); 

      if (this.Request.Content.IsMimeMultipartContent()) 
      { 

       using (Stream requestStream = task.Result) 
       { 
        // Do not know how to copy the above request to file stream or zip (ionic zip) and generate zip file from it 
       } 
      } 
아래

참고 :

1)

은 (는) 잘못된 우편 번호를 만듭니다.

2) Zip 안에 여러 파일이 있습니다.

의견

업데이트 한 대기 :

var provider = new MultipartFormDataStreamProvider(ScriptPath); 

       Request.Content.ReadAsMultipartAsync(provider);     

       foreach (MultipartFileData file in provider.FileData) 
       { 

        Trace.Write(file.Headers.ContentDisposition.FileName); 
        Trace.Write("Server file path: " + ScriptPath); 

       } 

하지만 나에게 이것은 나를 위해 작동

+1

무엇이 당신 질문입니까? –

+0

은 분명해 보이지만 확인하려면 서버에 파일을 저장하고 있습니까? (나는 아마도 이것을 업로드라고 부른다.) –

+0

@ G.Stoynev 파일이 Zip 안에 다운로드되었지만 파일 스트림에 언급 된 이름이 유효하지 않다. – GowthamanSS

답변

0

도움이되지 않습니다. 내가 컴파일하지 않은 것처럼 의사로 취급하십시오. 또한 .Result 블로킹을 재 작업하여 비동기 읽기를 활용할 수 있습니다.

var requestStream = await Request.Content.ReadAsMultipartAsync(); 

HttpContent fileContent = requestStream.Contents.SingleOrDefault(c => c.Headers.ContentType != null); 

byte[] fileBytes = await fileContent.ReadAsByteArrayAsync(); 
using (FileStream fs = File.OpenWrite(outputPath)) 
{ 
    fs.Write(fileBytes, 0, (int)fileContent.Headers.ContentLength.Value); 
} 
+0

시도해보고 u를 업데이트 할 것이다 – GowthamanSS

+0

나는 버그를 얻고 있기 때문에 대답을 재 프레임화할 수 있습니까? – GowthamanSS

+0

코드가 문제가 되는가? –

관련 문제