我一直在尝试以各种方式提供epub下载。当使用任何浏览器在我的笔记本电脑上下载所有文件时,这些文件都可以使用,但是当使用电子阅读器下载文件时,它们都会导致“文件损坏”或“不支持内容类型”。问题不在于文件本身:当我将其上传到其他任何地方(例如公共文件转储网站)时,我可以将文件下载到电子阅读器而没有任何问题。
这是我尝试过的许多方法之一:
IFileProvider provider = new PhysicalFileProvider(path);
IFileInfo fileInfo = provider.GetFileInfo(filename);
var readStream = fileInfo.CreateReadStream();
var fileType = "application/epub+zip"; //MediaTypeNames.Application.Octet
return File(readStream, fileType, Path.GetFileName(outputFilepath));
并在剃须刀页面上,例如:
<a href="3/Epub2/test.epub">Epub2</a>
<a href="3/Epub2/test.epub" download="test.epub" type="application/epub+zip" target="_blank">Epub2</a>
(此处第一个链接导致“损坏的文件”,第二个链接导致“不支持的内容类型”)。 在服务器上,该文件位于网站根目录之外。 为何直接下载到我的电子阅读器无法使用此代码,而使用普通文件上传/下载却可以使用,是什么原因呢?
非常感谢您的帮助!
答案 0 :(得分:0)
问题是通过https下载到我的Tolino电子阅读器。这种特定的旧Tolino模型存在通过https下载的问题,当我切换到http时,我可以成功下载电子书。