그래서 큰 UpdatePanel 내부에 테이블과 링크 버튼을 모두 동적으로 생성하는 페이지가 있습니다. 각 링크 버튼을 클릭하면이 메소드가 호출됩니다. 목표는 내 DB에있는 파일을 가리키는 링크를 갖는 것이며, 클릭하면 사용자가 해당 파일을 열거 나 저장할 수 있습니다. 이 정확한 방법은 일반적으로 동일한 설정을 사용하여 내 사이트의 다른 페이지에서 제대로 작동하지만이 하나에 내가 받고 있어요 :ASP.NET 프로그래밍 방식 파일 다운로드
Microsoft JScript 런타임 오류 : Sys.WebForms.PageRequestManagerParserErrorException : 서버에서받은 메시지를 구문 분석 할 수 없습니다. . 이 오류의 일반적인 원인은 Response.Write(), 응답 필터, HttpModules 또는 서버 추적에 대한 호출로 응답을 수정 한 경우입니다. 세부 정보 : '% PDF-1.3 % 10 % ob'근처에서 오류를 구문 분석합니다.
public void downloadFile(int fileID)
{
using (SurveyDataContext context = new SurveyDataContext())
{
try
{
var file = context.tblFiles.Single(f => f.FileID == fileID);
Response.Clear();
Response.Buffer = true;
Response.BufferOutput = true;
Response.ContentType = file.MIMEtype;
Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + file.FileName.Trim() + "\"");
Response.AddHeader("Extension", file.FileName.Substring(
file.FileName.LastIndexOf('.') + 1).ToLower());
Response.BinaryWrite(file.FileData.ToArray());
Response.Flush();
Response.End();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.InnerException);
}
}
}
내가 뭘 잘못하고 있니? 나는 어떤 반응도하지 않을거야 .Writes 나 뭐. 이 방법은 응답에 유일한 방법입니다. 이 일을해야하는 다른 방법이 있습니까?
내가 Response.Flush를 추가 시도하고 도움이되지 않았다. 내 코드와 샘플의 차이점을 볼 수 없다. Response.BinaryWrite를 사용하고 있으며 Response.FileWrite를 사용하고 있지만 FileWrite가 작동하지 않도록 파일 시스템에 파일이 없다. – jamone