Photographers Inc

mvc 파일 다운로드

2020年2月6日

공개 FileResult 다운로드 (문자열 ID) { int fid = Convert.ToInt32 (id); var 파일 = objData.GetFiles (); 문자열 파일 이름 = (f.FileId = = fid 선택 f.FilePath). 첫 번째(); 문자열 내용유형 = “응용 프로그램 / PDF”; 파일 매개 변수는 //1입니다. 파일 서버의 파일 경로 //2. 콘텐츠 유형 MIME 유형 //3. 브라우저 반환 파일 (파일 이름, contentType,”Report.pdf”)에 의해 저장 파일에 대 한 매개 변수; } 요소의 이름 특성을 확인합니다. 우리는 곧 다시 올 것이다. 그 동안 결과 페이지는 다음과 같이 다소 단조로워 보입니다. 기본적으로 API는 파일 이름인 쿼리 문자열을 수락합니다. 다음 코드를 사용하여 프로젝트의 루트 경로를 얻을 수 있습니다. `다운로드` 작업 메서드는 뷰에서 ID(FileId)를 허용하고 GetFiles 메서드에서 반환된 파일 목록을 쿼리합니다. 파일 목록을 쿼리한 후 파일 경로를 검색합니다. 또한 MIME 형식 정의 콘텐츠 헤더인 콘텐츠 형식을 정의합니다. 이 정보는 브라우저에서 파일 처리 방법을 결정해야 합니다.

이 경우 aPDF로 정의됩니다. 메서드는 `FilePathResult` 형식의 개체를 반환합니다. FileResult에서 상속된 클래스입니다. FilePathResult는 세 개의 매개 변수를 허용합니다. 첫 번째는 다운로드할 파일의 파일 경로입니다. 두 번째는 콘텐츠 유형입니다. 세 번째 매개 변수는 다운로드 파일 이름입니다. 이 매개 변수는 선택적 매개 변수이지만 통과되면 브라우저에 다운로드 효과가 표시됩니다.

ASP.NET MVC3와 함께 상자밖으로 나오는 FileResult 작업은 ASP.NET MVC 응용 프로그램에서 파일을 다운로드하기 위한 추상화를 쉽게 제공합니다. 데이터베이스의 파일이 하이퍼링크 대신 이미지인 경우 element의 src 특성 내에서 컨트롤러 작업을 가리키면 FolderName을 프로젝트 계층 구조에 있는 폴더로 바꾸고 filename.extension을 확장자와 함께 파일 이름으로 바꿔 제대로 작동하도록 합니다. 아래 줄을 사용하여 보기에서 이 것을 호출하기만 하면 FilePathResult를 사용하는 방법을 살펴보겠습니다. 이것은 디스크에서 직접 파일을 스트리밍하는 데 사용됩니다 : 다운로드 링크를 클릭하고 당신은 아래와 같이 다운로드 상자를 얻을 것이다 (참고 : 나는 IE9를 사용하고 있습니다) 당신이 나에게 “우려의 분리!”를 비명하기 전에, 코드의 다음 조각은 순전히 예시입니다. 컨트롤러 작업 내에서 ADO.NET 기능합니다. 우리 모두가 알다시피, 이것은 단순히 수행되지 않습니다. 데이터베이스 액세스 코드는 모델 내부의 데이터 액세스 계층에 속합니다. 그러나 이 코드는 업로드된 파일을 데이터베이스에 저장하려는 경우 사람들에게 출발점을 제공해야 합니다. 우선, 데이터베이스 (FileTest)를 만들고 테이블을 추가했습니다 : FileStore : 클릭하면 파일 다운로드가 트리거되는 사이트에 일종의 HTML 요소를 만들려고합니다.

아주 간단한 요청처럼 보이지만, 그 다음에 조금 더 나타납니다. 기본적으로 웹 브라우저는 특정 파일 형식을 처리하는 설정된 방법을 갖습니다. 예를 들어 사용자가 이미지 파일을 다운로드할 수 있도록 하려면 이미지 의 경로를 href에 넣기만 하면 실제로 파일을 다운로드하는 대신 새 탭/창에서 이미지를 열수 있습니다. ASP MVC를 사용하여 파일을 다운로드하는 데 필요한 것은 다음과 같습니다. 공개 작업결과 인덱스() { var 파일 = objData.GetFiles(); 반환 보기(파일); } 이 시점에서 이미 내 앞에 있을 수 있습니다., 그리고 어떻게 사용할 수 있습니다 사실 Request.Files 컬렉션. 즉, 두 개 이상의 파일을 수용 할 수 있음을 시사하고, 실제로, 그것은 할 수 있습니다. 원래 보기를 이것으로 변경하는 경우: MVC에서 처음으로 작업을 시작하고 파일 다운로드 작업이 시작될 때 Google에 솔루션을 요청했습니다.

コメント