umbraco将媒体选择器中的flle替换为同名

umbraco将媒体选择器中的flle替换为同名,umbraco,mpmediapickercontroller,Umbraco,Mpmediapickercontroller,如果上载了同名文件,如何扩展Umbraco media picker以覆盖该文件 在上面的图像中,它创建了两个文件,但我想用新文件替换第一个文件 我正在使用umbraco 7.11.1您是否尝试创建应用程序venthandler并连接到此处列出的媒体活动之一: 然后,您可以将用户试图上载的文件与媒体缓存中已有的文件进行比较 e、 g 公共类媒体保存:ApplicationEventHandler { 受保护的覆盖无效应用程序已启动(UmbracoApplicationBase umbraco应

如果上载了同名文件,如何扩展Umbraco media picker以覆盖该文件

在上面的图像中,它创建了两个文件,但我想用新文件替换第一个文件


我正在使用umbraco 7.11.1

您是否尝试创建应用程序venthandler并连接到此处列出的媒体活动之一: 然后,您可以将用户试图上载的文件与媒体缓存中已有的文件进行比较

e、 g

公共类媒体保存:ApplicationEventHandler
{
受保护的覆盖无效应用程序已启动(UmbracoApplicationBase
umbraco应用程序、应用程序上下文应用程序上下文)
{
MediaService.Saving+=MediaServiceSaving;
}
作废MediaServiceSaveing(IMediaService发送方,SaveEventArgs evt)
{
foreach(evt.SavedEntities中的var mediaItem)
{
//检查是否有新的上传和正确的类型等
//比较文件路径并在适当时覆盖
}
}
}

据我所知,目前还没有一个干净的解决方案来解决这个问题,这可能是因为媒体是如何在后台存储的(根据id,而不是作为一棵树)。如果你想尝试自己的修复方法,可能值得尝试在Angular中劫持上载调用并运行文件名检查以创建自己的提示。嘿,我认为你必须进入Umbraco中的“媒体”选项卡,然后单击树上的实际文件(在左侧)。在文件的右下方应该有一个“删除文件”链接,左边有一个红色的“x”,可以让你删除文件并添加一个不同的文件,它基本上会替换文件,而不是上传一个同名文件。我想这是有意的。谢谢@Jabberwocky,是的,这是一种方式。但有些用户无法访问“媒体”选项卡,只能从内容页上载。如果你进入“内容”并将鼠标悬停在所选图像上,会出现一个铅笔状的小图标。这将允许您按照我之前解释的方式替换图像。我不确定如果用户只有“内容”选项卡权限会发生什么
public class MediaSaving : ApplicationEventHandler
{

    protected override void ApplicationStarted(UmbracoApplicationBase 
   umbracoApplication, ApplicationContext applicationContext)
    {
        MediaService.Saving += MediaServiceSaving;
    }

    void MediaServiceSaving(IMediaService sender, SaveEventArgs<IMedia> evt)
    {
        foreach (var mediaItem in evt.SavedEntities)
        {
            //Check if a new upload and correct type etc
            //Compare file paths and overwrite if appropriate
        }

    }
}