gpt4 book ai didi

c# - Umbraco MediaService/Umbraco MediaItem 未保存

转载 作者:行者123 更新时间:2023-12-02 15:24:12 25 4
gpt4 key购买 nike

我正在尝试从文件系统读取图像文件并将其保存为 Umbraco 中的 MediaItem

这是我整理的代码:

MemoryStream uploadFile = new MemoryStream();
using (FileStream fs = File.OpenRead(tempFilename))
{
fs.CopyTo(uploadFile);

HttpPostedFileBase memoryfile = new MemoryFile(uploadFile, mimetype, Path.GetFileName(src.Value));
IMedia mediaItem = _mediaService.CreateMedia(Path.GetFileName(src.Value), itNewsMediaParent, "Image");
mediaItem.SetValue("umbracoFile", memoryfile);
_mediaService.Save(mediaItem);
src.Value = library.NiceUrl(mediaItem.Id);
}

不幸的是,Umbraco 似乎无法将该文件保存在媒体文件夹中。它确实在媒体树中创建了节点,并设置了正确的宽度、高度和所有其他内容。但是它指向 /media/1001/my_file_name.jpg。媒体部分已包含多个图像,应使用的下一个“ID”是“1018”。另外,如果我检查 /media/1001 内部,没有 my_file_name.jpg 的迹象。

我还验证了内存文件(这是一个 HttpPostedFileBase)的 SaveAs 方法永远不会被调用。

任何人都可以帮助我并指出正确的方向来解决这个问题吗?

最佳答案

为了保存媒体,我在 MediaService 中找到了这个方法。不过,我认为可能还有另一种更精致的方法

    [HttpPost]
public JsonResult Upload(HttpPostedFileBase file)
{
IMedia mimage;

// Create the media item
mimage = _mediaService.CreateMedia(file.FileName, <parentId>, Constants.Conventions.MediaTypes.Image);
mimage.SetValue(Constants.Conventions.Media.File, file);
_mediaService.Save(mimage);

return Json(new { success = true});
}

关于c# - Umbraco MediaService/Umbraco MediaItem 未保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com