c# mvc 파일 다운로드

이렇게 하려면 컨트롤러 중 하나에 „ActionResult”를 설정 해야 합니다. 즉, 컨트롤러의 URL에 대한 링크의 href 또는 소스를 설정합니다. 이 예제에서는 „DownloadFile”이라는 컨트롤러의 메서드를 „Services”라는 컨트롤러를 만들었으며이 메서드는 파일을 나타내는 값을 허용했습니다. 이를 위해 파일을 찾을 위치를 알려주는 일종의 ID를 사용하거나 간단한 URL을 파일 경로를 인코딩할 수 있습니다. 이 방법은 가장 쉬운 방법일 수 있지만 안전하지는 않습니다. 공용 사이트를 사용하는 경우 각 행에 파일을 식별하는 데 사용할 수 있는 고유 ID가 있도록 파일을 관리하기 위해 DB 테이블을 설정해야 합니다. 이것은 내가이 예제를 위해 한 일입니다. 다운로드 링크를 사용하여이 파일에 액세스하려면 다음과 같은 링크를 설정합니다. 이제 FilePathResult를 사용하는 방법을 살펴보겠습니다. 이것은 디스크에서 직접 파일을 스트리밍하는 데 사용됩니다 : 최종 옵션 – FileStreamResult는 디스크에서 파일을 제공하는 데 사용할 수 있습니다 : 그래서 코드는 어떻게 작동합니까? 기본적으로 API는 파일 이름인 쿼리 문자열을 수락합니다. 다음 코드를 사용하여 프로젝트의 루트 경로를 얻을 수 있습니다. DB 테이블과 함께 작동하는 사용자 지정 문서 개체를 만들었습니다.

생성자에서 행의 ID를 전달합니다 (나는 나쁜 관행을 알고 있습니다. 하지만 훨씬 더 빠를 수 있습니다). 이렇게 하면 디스크에 있는 파일의 경로를 포함하여 데이터베이스에서 모든 파일 정보를 가져옵니다. 파일 다운로드는 웹 응용 프로그램에서 원하는 일반적인 기능의 일종입니다. 웹 폼에서이 기능에 사용할 코드 조각을 제공하는 게시물 http://www.codeproject.com/Tips/663277/File-Download-on-ImageButton-or-Button-Click 이미 있습니다. „우려의 분리!”를 외치기 전에 다음 코드는 순전히 예시적입니다. 컨트롤러 작업 내에서 ADO.NET 기능합니다. 우리 모두가 알다시피, 이것은 단순히 수행되지 않습니다. 데이터베이스 액세스 코드는 모델 내부의 데이터 액세스 계층에 속합니다.

그러나 이 코드는 업로드된 파일을 데이터베이스에 저장하려는 경우 사람들에게 출발점을 제공해야 합니다. 우선, 데이터베이스 (FileTest)를 만들고 테이블을 추가했습니다 : FileStore : 업로드 된 파일을 데이터베이스에 저장할 때 FileContent 필드에 바이트 배열을 보냈습니다.