Image for uploaded file是否有一种简单的方法可以在控制器级别将文件上传到Umbraco 8中的媒体文件夹,并将其设置为文件上传数据类型的值。这是我用于版本7的代码,它似乎可以正常工作:
if (model.FileUpload != null)
{
IMediaService mediaService = Services.MediaService;
var media = mediaService.CreateMedia(model.FileUpload.FileName, 1834, "File");
media.SetValue("umbracoFile", model.FileUpload.InputStream);
mediaService.Save(media);
content.SetValue("entry", $"media/{media.Key}");
}
我已经检查了您的代码,似乎只有几件事我觉得不错。
[创建媒体时,您的媒体类型别名为“ File”,在我的代码中,我们使用了“ Image”Umbraco文档说
所以我认为应该是:<< [Image媒体类型用于上载和存储图像,而File媒体类型用于上载和存储“媒体”部分中的其他文件。
var media = mediaService.CreateMedia(model.FileUpload.FileName, 1834, "Image");
也许您也需要稍微更改SetValue。像
var fileName = Path.GetFileName(model.FileUpload.FileName); media.SetValue(Services.ContentTypeBaseServices, "umbracoFile", fileName, model.FileUpload.InputStream);
如果model.FileUpload.InputStream是包含数据的FileStream。