Вот еще одна опция, которая использует опцию append = FALSE.
library(skimr)
library(dplyr)
library(ggplot2)
iqr_na_rm <- function(x) IQR(x, na.rm = TRUE)
median_na_rm <- function(x) median(x, na.rm = TRUE)
my_skimmers <- list(n = length, missing = n_missing, complete = n_complete,
mean = mean.default, sd = purrr::partial(sd, na.rm = TRUE),
median = median_na_rm, iqr = iqr_na_rm
)
skim_with(numeric = my_skimmers,
integer = my_skimmers, append = FALSE)
msleep %>%
group_by(vore) %>%
skim(sleep_total) %>%
kable()
Я не поместил всю статистику, но вы можете посмотреть в файлах functions.R и stats.R, чтобы увидеть, как определяется различная статистика.
Никакой кровавый путь :(
Я выяснил, что ответ и это являются довольно хромыми.
У меня должно было быть имя аргумента, являющееся идентичным значениям идентификатора/имени входного типа = элемент "файла"!!! (не уверенный, если это или или оба значения элемента..., я не проверил тот бит).
таким образом, это - ответ.
<input type="file" id="imageFileName" name="imageFileName" class="upload" />
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Include = "Subject, Content")]Post post,
HttpPostedFileBase imageFileName)
{
...
}
ножи!
Помните, что также необходимо открыть форму как это:
<form enctype="multipart/form-data" ...
В течение прошлой недели я создавал систему загрузки/файлового менеджера для своего проекта MVC, и моя исходная попытка состояла в том, чтобы отправить дополнительные данные сообщения с многослойными значениями файлов. это оказалось слишком трудным для моих ограничений времени. мой подход теперь должен создать "соответствующую запись", к которой файлы/изображения могут быть 'присоединены' (как это находится в моем случае), - загрузка тогдашняя ('присоединение') файлы/изображения после того, как запись присутствует.
например: 1) создайте запись события, 2) присоедините изображения с управлением загрузкой
Мое действие, которое получает многослойное сообщение, использует понятия из сообщения Hanselman.
Я не могу сказать, что попробовал встроенную привязку составного типа за файлы (HttpPostedFileBase), но я предположил бы, что это будет более сложно, чем мое существующее решение, учитывая, что от того, чтобы читать сообщение Hanselman записал выше - я узнал что набор файлов, возвращенный в Request
только свободно введенный набор.
Я предложил бы придерживаться Вашего исходного кода и пытаться сделать это более безопасным для Ваших целей.
Не уверен, имеет ли это отношение к вопросу, но я только что нашел способ получить привязку модели для работы HttpPostedFileBase в сложных объектах. К сожалению, мне пришлось внести изменения в исходный код ASP.NET MVC, так что это не для всех.
В System.Web.Mvc.ValueProviderDictionary.PopulateDictionary () поставщик значений заполняется содержимым Request.Form, Request.QueryString и RouteData, но НЕ Request.Files. Добавьте следующие строки, чтобы «исправить» это (я говорю «исправить», потому что может быть причина, по которой команда ASP.NET MVC не сделала этого. я делаю это в первую очередь).
HttpFileCollectionBase files = ControllerContext.HttpContext.Request.Files;
if (files != null)
{
string[] keys = files.AllKeys;
foreach (string key in keys)
{
HttpPostedFileBase file = files[key];
ValueProviderResult result = new ValueProviderResult(file, file.FileName, currentCulture);
AddToDictionaryIfNotPresent(key, result);
}
}