사용자가 대용량 파일 (수 기가 바이트)을 업로드 할 수 있어야하는 애플리케이션이 있습니다.
이를 허용하기 위해 사용자 지정을 구현했으며 IHttpHandler
제대로 작동하는 것 같습니다. 그러나 사용자 정의 IHttpHandler.ProcessRequest()
가 파일 업로드를 완료하면 사용자를 컨트롤러 작업으로 리디렉션하고 싶습니다 . 또한이 리디렉션이 모든 원래 요청 매개 변수를 포함하는 방식으로 발생해야합니다.
이것은 내 시도입니다.
public void ProcessRequest(HttpContext context)
{
var isUploadReuqest = context.Request.Files.Count > 0;
if (isUploadReuqest)
{
// snip
context.Response.RedirectToRoute("Default", new { controller = "Home", action = "Upload" });
}
}
그러나 내 시도는 다음 오류를 생성합니다.
설명 : HTTP 404. 찾고있는 리소스 (또는 해당 종속성 중 하나)가 제거되었거나 이름이 변경되었거나 일시적으로 사용할 수 없습니다. 다음 URL을 검토하고 철자가 올바른지 확인하십시오.
요청 URL : / 홈 / 업로드
이것은 내 RouteConfig입니다.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{controller}/FileUpload");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
내 사용자 정의 된 HTTP 처리기는 path에 */FileUpload
있습니다. 그리고 네, Upload
에서 호출 된 액션이 있는지 궁금하다면 HomeController
:)
답변에 미리 감사드립니다!
몇 가지 추가 조사 후 나는 내가 HttpPost
행동 으로 전환하려고 시도하고 있음을 깨달았습니다 . 디자인에 의한 리디렉션은 GET 요청이므로 불가능합니다. 내 문제를 해결하려면 다르게 생각해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다