Clojures Полиморфизм является естественным расширением Java. В Java методы отправляются в соответствии с классом. В ближайшем будущем это расширяется, чтобы позволить вам отправлять вызовы на основе всего, что вы хотите. Его по-прежнему очень легко отправить на урок, и в большинстве случаев так оно и есть. Если вы хотите что-то еще, вы можете написать своего собственного диспетчера. Встроенная функция derive
для создания иерархии, основанной на чем угодно, и последующей отправки по isa
.
больше добра в: http://clojure.org/multimethods
Edit: И как только вы думаете, что все это выяснили, вы понимаете, что есть способ лучше. Проверьте http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx
Оригинал: Я не уверен, что понимаю ваш вопрос на 100%, но предполагаю, что вы хотите загрузить файл по URL-адресу, который выглядит примерно так: http: // {server name} / {Controller} / Upload? Это будет реализовано точно так же, как обычная загрузка файла с использованием веб-форм.
Итак, ваш контроллер имеет действие с именем upload и выглядит примерно так:
//For MVC ver 2 use:
[HttpPost]
//For MVC ver 1 use:
//[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload()
{
try
{
foreach (HttpPostedFile file in Request.Files)
{
//Save to a file
file.SaveAs(Path.Combine("C:\\File_Store\\", Path.GetFileName(file.FileName)));
// * OR *
//Use file.InputStream to access the uploaded file as a stream
byte[] buffer = new byte[1024];
int read = file.InputStream.Read(buffer, 0, buffer.Length);
while (read > 0)
{
//do stuff with the buffer
read = file.InputStream.Read(buffer, 0, buffer.Length);
}
}
return Json(new { Result = "Complete" });
}
catch (Exception)
{
return Json(new { Result = "Error" });
}
}
В этом случае я возвращаю Json, чтобы указать на успех, но вы можете изменить это в xml (или что-нибудь в этом роде), если необходимо.