ASP.NET MVC에서 FileResult를 사용하여 알 수 없는 유형의 파일 다운로드
ASP.NET MVC에서 파일 다운로드를 활성화하는 경우 일반적으로 선호되는 방법으로 FileResult를 사용하는 것이 좋습니다. 그러나 대부분의 예는 특정 콘텐츠 유형(예: "image/jpeg")이 포함된 이미지 파일을 다운로드하는 데 중점을 둡니다.
파일 형식을 알 수 없고 사용자가 다양한 파일 형식을 다운로드하도록 허용하려는 경우 문제가 발생합니다. 다운로드한 파일 이름이 파일 경로의 밑줄과 연결될 수 있으며 이는 이상적이지 않을 수 있습니다. 또한 일부 사람들은 "BinaryContentResult"와 같은 사용자 정의 클래스를 사용하는 대신 FileResult를 반환하는 것을 선호합니다.
권장 방법
이러한 문제를 해결하고 올바른 다운로드 메커니즘을 구현하려면 다음 단계를 따르십시오.
일반 옥텟 스트림 MIME 유형 사용:
알 수 없는 유형의 파일의 경우 일반 "Application/Octet-Stream" MIME 유형을 지정하여 파일이 모든 형식일 수 있음을 나타냅니다.
다운로드 작업 정의:
MVC 컨트롤러에서 파일 다운로드를 처리하는 작업 메서드를 만듭니다. 예를 들면 다음과 같습니다.
<code class="language-csharp">public FileResult Download(string filePath, string fileName) { // 从指定位置或流获取文件字节 byte[] fileBytes = GetFileBytes(filePath); // 使用指定的字节、MIME类型和文件名返回FileResult return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }</code>
파일 바이트 검색:
제공된 파일 경로 또는 기타 수단을 기반으로 파일 바이트를 검색하는 메서드를 구현합니다. 예를 들면 다음과 같습니다.
<code class="language-csharp">private byte[] GetFileBytes(string filePath) { return System.IO.File.ReadAllBytes(filePath); }</code>
샘플 코드:
다음은 접근 방식을 보여주는 샘플 코드 조각입니다.
<code class="language-csharp">public ActionResult Download() { byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext"); string fileName = "myfile.ext"; return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }</code>
이 방법을 사용하면 ASP.NET MVC 애플리케이션에서 원하는 파일 이름을 유지하고 적절한 MIME 유형을 사용하면서 모든 유형의 파일을 다운로드할 수 있습니다.
위 내용은 Fileresult를 사용하여 ASP.NET MVC에서 알 수없는 유형의 파일 다운로드를 처리하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!