이 문서에서는 웹 API MVC에서 파일을 다운로드하는 방법을 배웁니다. HTTP Get API 메서드를 사용하여 파일 이름을 허용하는 단일 매개 변수로 이 다운로드 작업을 수행합니다. 전체 코드는 다음과 같습니다. @foreach(모델의 var 항목) {

@Html.DisplayFor(모델항목 => 항목) 항목입니다. FileId) @Html.DisplayFor(모델항목 => 항목) FileName) @Html.ActionLink(“다운로드”, “다운로드”, 새 { ID = 항목). FileId })

} 이 시점에서 이미 내 앞에 있을 수 있으며 Request.Files가 컬렉션이라는 사실을 어떻게 활용할 수 있을지 궁금합니다. 즉, 두 개 이상의 파일을 수용 할 수 있음을 시사하고, 실제로, 그것은 할 수 있습니다. 원래 보기를 이것으로 변경하는 경우: 컨트롤러 작업의 코드는 이미 모든 파일 업로드를 확인하므로 여러 파일 업로드에서 작동하기 위해 변경이 필요하지 않습니다. 각 입력에는 다른 이름 특성이 있습니다. 개별적으로 참조해야 하는 경우 사용하는 용도입니다. 예를 들어 세 번째 참조를 참조하려면 Request.Files[“FileUpload3”]를 사용하여 사용할 수 있습니다.

공개 FileResult 다운로드 (문자열 ID) { int fid = Convert.ToInt32 (id); var 파일 = objData.GetFiles (); 문자열 파일 이름 = (f.FileId = = fid 선택 f.FilePath). 첫 번째(); 문자열 내용유형 = “응용 프로그램 / PDF”; 파일 매개 변수는 //1입니다. 파일 서버의 파일 경로 //2. 콘텐츠 유형 MIME 유형 //3. 브라우저 반환 파일 (파일 이름, contentType,”Report.pdf”)에 의해 저장 파일에 대 한 매개 변수; } 최종 옵션 – FileStreamResult너무 디스크에서 파일을 제공하는 데 사용할 수 있습니다 : 파일 다운로드는 우리가 우리의 웹 응용 프로그램에서 원하는 일반적인 기능의 일종이다. 웹 폼에서이 기능에 사용할 코드 조각을 제공하는 게시물 http://www.codeproject.com/Tips/663277/File-Download-on-ImageButton-or-Button-Click 이미 있습니다. 그렇다면 FilePathResult와 FileStreamResult의 차이점은 무엇이며 어떤 것을 사용해야 합니까? 주요 차이점은 FilePathResult httpResponse.TransmitFile을 사용 하 여 http 출력에 파일을 작성 합니다. 이 메서드는 서버의 메모리에 있는 파일을 버퍼링하지 않으므로 더 큰 파일을 보내는 것이 좋습니다. 그것은 매우 데이터 리더 또는 데이터 집합을 사용 하 여 의 차이 처럼. 다른 한편으로는, 당신은 당신이 에 사이트를 호스팅하는 서버를 확인해야 할 수도 있습니다, TransmitFile의 버그가 파일의 부분 배달로 이어질 수 있기 때문에, 또는 심지어 완전한 실패. FileStreamResult 예를 들어, ASP.NET 차트 컨트롤에 의해 메모리에서 생성 된 차트 이미지를 디스크에 저장할 필요 없이 반환 하는 좋은 방법입니다.

지난 주 에 ASP.NET MVC 3 기능에 대한 고객 중 한 명이 교육을 실시했습니다. 그들은 다양한 유형의 보고서를 호스팅하는 파일 서버를 가지고 있었고 클라이언트 컴퓨터에서 보고서를 다운로드하기 위해 ASP.NET Web Form 응용 프로그램을 프런트 엔드로 사용하고 있었습니다. 이제 ASP.NET WebForms를 MVC를 ASP.NET 마이그레이션할 계획이므로 MVC에서도 비슷한 기능을 기대했습니다. `다운로드` 작업 메서드는 뷰에서 ID(FileId)를 허용하고 GetFiles 메서드에서 반환된 파일 목록을 쿼리합니다. 파일 목록을 쿼리한 후 파일 경로를 검색합니다. 또한 MIME 형식 정의 콘텐츠 헤더인 콘텐츠 형식을 정의합니다. 이 정보는 브라우저에서 파일 처리 방법을 결정해야 합니다. 이 경우 aPDF로 정의됩니다. 메서드는 `FilePathResult` 형식의 개체를 반환합니다. FileResult에서 상속된 클래스입니다.

FilePathResult는 세 개의 매개 변수를 허용합니다. 첫 번째는 다운로드할 파일의 파일 경로입니다. 두 번째는 콘텐츠 유형입니다. 세 번째 매개 변수는 다운로드 파일 이름입니다. 이 매개 변수는 선택적 매개 변수이지만 통과되면 브라우저에 다운로드 효과가 표시됩니다. 다음에 수행해야 할 일은 사용자가 쿼리 문자열에서 파일 이름을 통과했는지 확인하고 있는 경우 System.IO.File을 사용하여 파일이 서버에 있는지 확인하는 것입니다.

Menu
Call Now Button