ASP.NET MVC рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рдмреИрдХрд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЬрдм рдореБрдЭреЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдкреНрд░рдЧрддрд┐ рдФрд░ рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рдХреЗ рдЕрдиреНрдп рд╕реБрдЦреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдВрджрд░ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрдВрддреНрд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рддреЛ рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдерд╛ рддрд╛рдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрд╛рдЗрдХ рдХреЛ рди рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХреЗред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд┐рдХрд▓рд╛ - рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рд╕реНрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣реА рд╕рднреНрдп рд╡рд┐рдХрд▓реНрдкред рд▓реЗрдХрд┐рди рдмреИрдХрдПрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде, рд╕реНрдерд┐рддрд┐ рдХреБрдЫ рд╣рдж рддрдХ рдмрджрддрд░ рд╣реЛ рдЧрдИред рдореБрдЭреЗ рдЬреЛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓реЗ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЫреЛрдЯреЗ рдЙрджрд╛рд╣рд░рдг рдереЗ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рддреЗрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдм рдкрд░ jQuery-File-Upload рдХреЛ рдмрд╛рд░ - рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рдмреИрдХрд▓реЛрдб ред

Backload рдЕрдкрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдХрдИ js- рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдмреИрдХрдПрдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ (jquery-file-upload рд╕рд╣рд┐рдд)ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ, рдЗрд╕рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реЗрдЯ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрдВрддреНрд░ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЙрдард╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред

рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ - рдореБрдлреНрдд (standart) рдФрд░ рдХрдИ рднреБрдЧрддрд╛рди рд╡рд╛рд▓реЗред рд▓реЗрдХрд┐рди рдорд░рд╣рдо рдореЗрдВ рдЗрд╕ рдордХреНрдЦреА рдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рдореБрдЖрд╡рдЬрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рд╡рд┐рдХрд▓реНрдк рдореЗрд░реЗ рд╕рд┐рд░ рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛)ред

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдмреИрдХрдЧреЗрдЯ рдкреИрдХреЗрдЬ рдХреЛ рдирдЧреЗрдЯ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдпрд╛ рддреБрд░рдВрдд jquery-file-upload рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ред
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП - рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд╛рдкрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдмрд╕ jquery-file-upload рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд URL рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

var fileUploadUrl = "/Backload/UploadHandler"; $('#fileupload').fileupload({ url: fileUploadUrl }); 


рдФрд░ рд╡рд╣ рд╕рдм рд╣реИред рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдм рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (.config) рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдмреИрдХрд▓реЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдХреЗ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдПрдВ, рдФрд░ рдЙрд╕рдХреЗ URL рдХреЛ jquery-file-upload рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ, FileUploadHandler рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВ, рдЗрд╕рдХреА рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░реЗрдВ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИред

Backload рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
 public class FileUploadController : Controller { public async Task<ActionResult> FileHandler() { FileUploadHandler handler = new FileUploadHandler(Request, this); handler.IncomingRequestStarted += handler_IncomingRequestStarted; handler.AuthorizeRequestStarted += handler_AuthorizeRequestStarted; handler.AuthorizeRequestFinished += handler_AuthorizeRequestFinished; handler.GetFilesRequestStarted += handler_GetFilesRequestStarted; handler.GetFilesRequestFinished += handler_GetFilesRequestFinished; handler.GetFilesRequestException += handler_GetFilesRequestException; handler.StoreFileRequestStartedAsync += handler_StoreFileRequestStartedAsync handler.StoreFileRequestFinished += handler_StoreFileRequestFinished; handler.StoreFileRequestException += handler_StoreFileRequestException; handler.DeleteFilesRequestStarted += handler_DeleteFilesRequestStarted; handler.DeleteFilesRequestFinishedAsync += handler_DeleteFilesRequestFinishedAsync; handler.DeleteFilesRequestException += handler_DeleteFilesRequestException; handler.OutgoingResponseCreated += handler_OutgoingResponseCreated; handler.ProcessPipelineExceptionOccured += handler_ProcessPipelineExceptionOccured; ActionResult result = await handler.HandleRequestAsync(); return result; } /*  */ } 


рдЙрд╕рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд╢рд░реНрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо, рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рдкрде, рдпрд╛ рдмрд╕ рдХреБрдЫ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░ рджреЗрдВред

рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ
 async Task handler_StoreFileRequestStartedAsync(object sender, StoreFileRequestEventArgs e) { var fileName = e.Param.FileStatusItem.FileName; if (fileName.Equals("some_bad_name.tmp", StringComparison.OrdinalIgnoreCase)) { fileName = "some_good_name.tmp"; e.Param.FileStatusItem.FileName = fileName; e.Param.FileStatusItem.UpdateStatus(true); } } 


рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрд▓реЛрдб рдХреЗ рдЕрдВрдд рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░реЗрдВред

рдПрдХ рдФрд░ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг
 void handler_StoreFileRequestFinished(object sender, StoreFileRequestEventArgs e) { var fileName = e.Param.FileStatusItem.FileName; var folder = e.Param.FileStatusItem.StorageInfo.FileDirectory; DoSomeOperations(folder, fileName); } 


рдЗрди рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рд╡рд░реНрдгрди рд╣реИред рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрдХреНрд░рдо рдЙрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ, рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди рд▓реЙрдЧ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдФрд░ рдореЗрдЯрд╛рдбрд╛рдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрде рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЬрдЯрд┐рд▓ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдХрд▓рд╛ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдФрд░ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рд▓реЗрдХрд┐рди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/In204878/


All Articles