WebCliente.DownloadData 在.odt文件时给出"找不到文件"



我正在使用WebClient.DownloadData函数从URL下载文件作为字节数组。这非常适合我尝试过的所有类型的文件,显然,除了.odt文件。其他有效的类型是png,pdf,txt,doc,docx,xlsx。ODT专门给了我一个"找不到文件"错误。

功能尽可能简单明了:

public byte[] GetBytes(string url)
{
using (var client = new WebClient())
{
return client.DownloadData(url);
}
}

该函数从项目 A 中的视图执行,而文件位于项目 B 中的本地文件夹中。 不知道这是否有任何区别,因为其他文件类型按预期工作。 当然,.odt文件确实在项目 B 的本地文件夹中,在函数接收的确切路径中。

有什么想法吗?这是一个.odt或其他 LibreOffice 类型的问题吗?我将不胜感激任何帮助/见解:)

您需要将 odt mime 类型添加到 web server.in webconfig 添加以下内容:

<system.webServer>
<staticContent>
<remove fileExtension=".odt" />
<mimeMap fileExtension=".odt" mimeType="application/vnd.oasis.opendocument.text" />
</staticContent>
</system.webServer>

如果您使用的是 .net 核心,请在启动中添加以下内容:

var contentTypeProvider = new FileExtensionContentTypeProvider();
contentTypeProvider.Mappings[".odt"] = "pplication/vnd.oasis.opendocument.text";
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = contentTypeProvider
});

相关内容

最新更新