이것은 인덱스보기에서 동작 링크입니다.MVC 컨트롤러에서 다운로드 파일 경로에 오류가 발생했습니다.
@Html.ActionLink("Download File", "Download", new { fileName = Model.OriginalRecordRelativeFilePath })
public FileResult Download(string fileName)
{
try
{
var fs = System.IO.File.OpenRead(Server.MapPath(ConfigurationHelper.IntegrationInterfaceFolderPath + fileName));
// ConfigurationHelper.IntegrationFolderPath is a path for C:\Data\IntergrationInterface\
return File(fs, "application/octet-stream", fileName);
}
catch
{
throw new HttpException(404, "Couldn't find " + fileName);
}
}
나는 C에서 파일을 다운로드하려고 : \ 데이터 \ IntergrationInterface \ 파일 이름을. 그러나 C : \ Data \ IntergrationInterface \ fileName의 경로를 찾을 수없고 예외를 throw 할 수 없습니다 (fileName을 찾을 수 없습니다). 동일한 컴퓨터에서 localhost 웹 서비스를 실행하는 동안 로컬 C에서 파일을 다운로드 할 수있는 방법이 있습니까? 고맙습니다.
예외가 없습니다. 파일이 존재합니까? 가능하면 별도의 변수에 저장하여 경로를 확인하십시오. 이 사이트가 실행되는 사용자는 파일을 읽을 수있는 권한이 있습니까? – CodeCaster
예. 파일이 존재했습니다. C : \ Data \ IntergrationInterface \ path에 path라는 더미 파일을 만들었습니다. 이 사이트의 사용자는 시스템 관리자로 코딩됩니다. 따라서 파일을 읽을 수있는 권한이 있습니다. – AhYap
코드를'string path = ConfigurationHelper.IntegrationInterfaceFolderPath + fileName;으로 변경하십시오. 경로 = Server.MapPath (경로); var fs = System.IO.File.OpenRead (path);'. 각 단계에서 변수를 검사하십시오. – CodeCaster