2012-03-12 1 views
0

사용자가 파일을 업로드하고 다운로드 할 수있는 응용 프로그램이 있습니다. 업로드 코드는 다음과 같습니다 [보기] IIS 7 및 Visual Studio 2010에서 파일을 다운로드 할 때 404.0 오류가 발생합니다.

<input type="file" name="file" id="file" /> 

<p /> 

<input type="submit" value="Upload" style="font-size:1em" /> 
</form> 

[컨트롤러]

public ActionResult Index(string id, FormCollection formCollection, HttpPostedFileBase file, int? FileID) 

string filePath = "c:\\sandbox\\" + id + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + extension; 
file.SaveAs(filePath); 

업로드가 잘 작동합니다. 그러나 "샌드 박스"에 업로드 한 파일을 다운로드하려고하면 404 오류가 발생합니다.

[보기]

<a href="/AdjClaim/Download/@f.ID">@f.Name </a> 

[컨트롤러]

return File(a.FilePath, a.ContentType, a.Name); //File path is c:\Sandbox\filename 

응용 프로그램 내 dev에 상자에 완벽하게 작동하지만 IIS 7.5 상자에 이식 할 때 실패 : 여기에 다운로드 코드입니다. 어떤 생각이라도 대단히 감사하겠습니다.

감사합니다.

+0

... a.ContentType 및 a.Name 값은 무엇입니까? – Mike

+0

콘텐츠 유형은 application/pdf입니다. 이름은 Test.pdf입니다. –

+0

IIS 7.5 상자에서 경로가 실행되고 있는지 확인할 수 있습니까? 반환 형식을 FilePathResult에서 ActionResult로 변경 한 다음 일반 페이지 인 것처럼보기를 반환하면 작동합니까? – Mike

답변

0

발견!

dev 상자에서 테스트 할 때 컨트롤러/동작은 루트에서 직접 벗어납니다. 그러나 IIS 상자에 배포 할 때 웹 사이트는 하위 폴더 (xxxxxxx_deploy)에 배치됩니다. 컨트롤러 동작에 대한 링크에는 IIS 하위 폴더가 포함되어 있지 않으므로 로컬 상자에서 작동합니다.

마이크!

관련 문제