由于Content-Disposition标题(字符编码,跨浏览器支持)的问题,我决定尝试另一种动态提供文件的方法。
即,我将请求重定向到以下内容:
localhost/Download/Page.aspx/filename-without-extension
为了让浏览器在最后获取文件名。 我还提供了正确的Content-Type标头(由我扯掉的System.Web.MimeMapping类确定)。
现在,对于ZIP文件,这实际上工作正常。浏览器提供使用扩展名.zip保存文件。 对于我尝试过的所有其他文件类型(exe,pdf,doc),它不会建议文件扩展名,这使得大多数用户无法使用该文件。
我只看到一个解决此问题的方法:我需要将扩展名放入网址。
localhost/Download/Page.aspx/filename.ext
但这样做会导致404错误或类似错误,因为Web服务器现在将在子目录Page.aspx中查找不存在的文件。
是否有任何配置指令可以让我更改特定子目录的此行为?
该项目是标准的ASP.NET 3.5网站。我更喜欢在IIS管理器中不涉及复杂配置的解决方案。对我来说最好的解决方案是ASPX文件本身的指令虽然不太可能存在,因为这是应用程序级别的路由问题。但是位置标记中的Web.Config设置会很好。
答案 0 :(得分:0)
我试图复制这个错误,我得到了zip,word和PDF文件。我想知道它是否不适用于Word和PDF,因为这些扩展未在客户端上正确注册。在Windows客户端上,这位于 HKEY_CLASSES_ROOT \ Mime 下的注册表中。