如何让IE不自动打开视频文件,而是下载视频

PengWu1984 2016-04-05 11:34:36
Hi, 我在ASP.NET网页上加了一个GridView控件,来实现List列表。
最后一列是视频文件的Download, 我是这样写的


<asp:TemplateField HeaderText="Download" SortExpression="">
<itemtemplate>
<a href="<%# Eval("fileurl") %>">Download</a>
</itemtemplate>
</asp:TemplateField>


其中,fileurl是数据源中的一个字段,存储视频文件的地址,它的值比如为 :/secure/Multimedia/test.mp4 我在项目的文件夹/secure/Multimedia/中放置了test.mp4文件,这样用户点击就可以下载了

在Chrome浏览器中是没有问题的
但是在IE中,当用户点击Download时,会自动调用Windows Media Player来播放它,无法让用户直接下载
请问应该如何解决呢?
谢谢了。
...全文
581 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果你要改mime 声明为 /octet-stream,实际上你还得把 .mp4 这个文件后缀改为客户端根本不认识的后缀,才能避免被客户端的播放器打开。因为你的客户端已经跟 .mp4 这个后缀绑定了默认打开应用,使用 /octet-stream 并不能通知客户端不打开应用。
  • 打赏
  • 举报
回复
是默认打开文件还是默认下载文件,是由http Response 中的 Content-disposition 消息头来控制的,例如此消息参数中写 attachment; 就会默认地用下载方式。 跟 mime 类型并没有关系!
PengWu1984 2016-04-06
  • 打赏
  • 举报
回复
引用 4 楼 fxj805835819 的回复:
应该是IIS的MIME类型,新增一个:上面一行*.mp4,下面一行application/octet-stream ;如果已经有*.MP4就修改
不对啊,我在网站服务器的IIS里面,把MIME类型按你说的改了 但是在我自己电脑上,点击Download的时候,还是会自动用Windows media 打开播放 但是在服务器上,用IE打开时,是可以下载的,可能是它上面没有播放器 还是说每台客户端电脑的IIS都要进行更改,那肯定不行啊。
PengWu1984 2016-04-06
  • 打赏
  • 举报
回复
引用 3 楼 fei2yun 的回复:
1楼靠谱 2楼仅限最后考虑(无法修改IIS情况下)
是这样的,它这个GridView中有两列,一列是View,另一列才是Download, View那一列点击后会进入一个新的页面,直接打开mp4文件进行播放,大概代码如下:

<asp:Content ID="Content3" ContentPlaceHolderID="MainBodyPlaceHolder" runat="Server">
  <div class="row">
    <div class="col-sm-12">
      <h1><%= TutorialTitle%></h1>
      <asp:Literal runat="server" ID="ltlTutorialDescription" />
       <asp:Panel runat="server" ID="pnlVideo">
       <video controls auoplay>
       <source src="<%= TutorialURL%>" type="video/mp4">
       <p>
      To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video.
    </p>
</video>
        </asp:Panel>
      <asp:Panel runat="server" ID="pnlHTMLFile">
        <iframe id="swf" src="<%= TutorialURL%>" title="<%= TutorialTitle%>" scrolling="no" frameborder="0" style="width:100%;"></iframe>
        </asp:Panel>
    </div>
  </div>
</asp:Content>

可以看到,这里的type是 video/mp4, 所以在IIS的设置里,也是上面一行*.mp4,下面一行video/mp4 我要是在IIS中改成上面一行*.mp4,下面一行application/octet-stream,Download是没有问题了。但是View是不是会有问题呢? 请高手解决。谢谢
PengWu1984 2016-04-06
  • 打赏
  • 举报
回复
引用 4 楼 fxj805835819 的回复:
应该是IIS的MIME类型,新增一个:上面一行*.mp4,下面一行application/octet-stream ;如果已经有*.MP4就修改
是这样的,它这个GridView中有两列,一列是View,另一列才是Download, View那一列点击后会进入一个新的页面,直接打开mp4文件进行播放,大概代码如下:

<asp:Content ID="Content3" ContentPlaceHolderID="MainBodyPlaceHolder" runat="Server">
  <div class="row">
    <div class="col-sm-12">
      <h1><%= TutorialTitle%></h1>
      <asp:Literal runat="server" ID="ltlTutorialDescription" />
       <asp:Panel runat="server" ID="pnlVideo">
       <video controls auoplay>
       <source src="<%= TutorialURL%>" type="video/mp4">
       <p>
      To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video.
    </p>
</video>
        </asp:Panel>
      <asp:Panel runat="server" ID="pnlHTMLFile">
        <iframe id="swf" src="<%= TutorialURL%>" title="<%= TutorialTitle%>" scrolling="no" frameborder="0" style="width:100%;"></iframe>
        </asp:Panel>
    </div>
  </div>
</asp:Content>

可以看到,这里的type是 video/mp4, 所以在IIS的设置里,也是上面一行*.mp4,下面一行video/mp4 我要是在IIS中改成上面一行*.mp4,下面一行application/octet-stream,Download是没有问题了。但是View是不是会有问题呢? 请高手解决。谢谢
ruolins 2016-04-05
  • 打赏
  • 举报
回复
吧你的视频压缩下,地址是直接指向这个文件可以吧。
範先森 2016-04-05
  • 打赏
  • 举报
回复
应该是IIS的MIME类型,新增一个:上面一行*.mp4,下面一行application/octet-stream ;如果已经有*.MP4就修改
来自故乡的风 2016-04-05
  • 打赏
  • 举报
回复
写个一般处理程序来下载文件。下面图片来自英文网站:

tptptp00 2016-04-05
  • 打赏
  • 举报
回复
iis里.mp4的mine类型改成application/octet-stream

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧