Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Orchardcms Orchard 1.7-媒体库中未列出的媒体文件夹内容_Orchardcms_Orchardcms 1.7 - Fatal编程技术网

Orchardcms Orchard 1.7-媒体库中未列出的媒体文件夹内容

Orchardcms Orchard 1.7-媒体库中未列出的媒体文件夹内容,orchardcms,orchardcms-1.7,Orchardcms,Orchardcms 1.7,我在为我的Orchard站点列出媒体目录中的图像时遇到问题。 当尝试使用新媒体选择器添加图像时,我会看到文件夹列表,但当我选择其中一个文件夹时,不会列出内容(请参见下图) 如果我“导入”一个图像,它确实会出现,但我肯定不需要每次都导入要使用的每个文件,是吗 我一定是唯一一个有这个问题的人,因为我在网上其他任何地方都找不到它的任何参考,所以提前谢谢 请注意,如果我的问题没有完全形成,很抱歉-这是我第一次发帖 好的,我也遇到了这个问题,刚把它修好。根本的问题是,orchard数据库中有一些媒体文件的

我在为我的Orchard站点列出媒体目录中的图像时遇到问题。 当尝试使用新媒体选择器添加图像时,我会看到文件夹列表,但当我选择其中一个文件夹时,不会列出内容(请参见下图)

如果我“导入”一个图像,它确实会出现,但我肯定不需要每次都导入要使用的每个文件,是吗

我一定是唯一一个有这个问题的人,因为我在网上其他任何地方都找不到它的任何参考,所以提前谢谢

请注意,如果我的问题没有完全形成,很抱歉-这是我第一次发帖


好的,我也遇到了这个问题,刚把它修好。根本的问题是,orchard数据库中有一些媒体文件的记录不再存在。这是因为我们刚刚将项目更改为使用Azure存储,而数据库仍然指向本地硬盘其他区域中的图像。(Orchard在尝试获取其公共URL时使用了一种方法来检查blob是否确实存在,如果不存在,则抛出异常。)

我做了两件事来修复它。首先,我从数据库中删除了所有对旧图像的引用。Orchard数据库中的表[Orchard\u MediaLibrary\u MediaPartRecord]包含所有文件名。您可以在那里查看是否有您知道不存在的文件引用

其次,由于有多个开发人员在我们的CMS上工作,但使用的是一个中央数据库,所以我担心在我们将图像添加到本地azure文件系统时,它会再次崩溃。最后,我进入AzureFileSystem.cs文件并修改它以返回一个空字符串,而不是在未找到blob时引发异常:

我将第297行和第298行更改为:

try
{
    Container.EnsureBlobExists(String.Concat(_root, path));
    return Container.GetBlockBlobReference(String.Concat(_root, path)).Uri.ToString();
}
catch
{
    return "";
}
现在,即使它找不到图像,它仍然会显示它能找到的图像


希望这有帮助。您可能没有通过Azure运行东西,但您仍然可以从数据库中删除不需要的条目。

好的,我也遇到了这个问题,刚刚将其修复。根本的问题是,orchard数据库中有一些媒体文件的记录不再存在。这是因为我们刚刚将项目更改为使用Azure存储,而数据库仍然指向本地硬盘其他区域中的图像。(Orchard在尝试获取其公共URL时使用了一种方法来检查blob是否确实存在,如果不存在,则抛出异常。)

我做了两件事来修复它。首先,我从数据库中删除了所有对旧图像的引用。Orchard数据库中的表[Orchard\u MediaLibrary\u MediaPartRecord]包含所有文件名。您可以在那里查看是否有您知道不存在的文件引用

其次,由于有多个开发人员在我们的CMS上工作,但使用的是一个中央数据库,所以我担心在我们将图像添加到本地azure文件系统时,它会再次崩溃。最后,我进入AzureFileSystem.cs文件并修改它以返回一个空字符串,而不是在未找到blob时引发异常:

我将第297行和第298行更改为:

try
{
    Container.EnsureBlobExists(String.Concat(_root, path));
    return Container.GetBlockBlobReference(String.Concat(_root, path)).Uri.ToString();
}
catch
{
    return "";
}
现在,即使它找不到图像,它仍然会显示它能找到的图像


希望这有帮助。您可能没有通过Azure运行内容,但您仍然可以从数据库中删除不需要的条目。

启用更新功能,并从那里将媒体迁移到媒体库。这是一个一次性过程,之后您可以将媒体库与所有旧媒体一起使用。

启用更新功能,然后将媒体迁移到媒体库中。这是一个一次性过程,之后您可以将媒体库与所有旧媒体一起使用。

谢谢您的回答。我希望Orchard能找到一种方法来读取媒体文件夹的内容并从中填充库(就像以前一样)。所以你的回答并不能真正解决我的问题,但很方便,因为我可能无论如何都要走这条路。干杯谢谢你的回答。我希望Orchard能找到一种方法来读取媒体文件夹的内容并从中填充库(就像以前一样)。所以你的回答并不能真正解决我的问题,但很方便,因为我可能无论如何都要走这条路。干杯