Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.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
C# 使用IE下载.mp4另存为.data_C#_Asp.net_.net_Video - Fatal编程技术网

C# 使用IE下载.mp4另存为.data

C# 使用IE下载.mp4另存为.data,c#,asp.net,.net,video,C#,Asp.net,.net,Video,我有一个.NET项目,在那里我有一个直接链接,可以将.mp4下载到用户的硬盘上。它在chrome中运行良好,但在IE中,它将其保存为.data文件。有人知道我怎么解决这个问题吗 在my.aspx页面中,我使用以下链接: <asp:hyperlink Visible="false" id="dlVideo" Font-Size="8pt" NavigateUrl='<%# Eval("VideoName", "~/Workshops/Refology/Get.aspx?FileName

我有一个.NET项目,在那里我有一个直接链接,可以将.mp4下载到用户的硬盘上。它在chrome中运行良好,但在IE中,它将其保存为.data文件。有人知道我怎么解决这个问题吗

在my.aspx页面中,我使用以下链接:

<asp:hyperlink Visible="false" id="dlVideo" Font-Size="8pt" NavigateUrl='<%# Eval("VideoName", "~/Workshops/Refology/Get.aspx?FileName={0}&OrigName=" + Eval("FirstName") + "&CamperName=" + Eval("lastname") + "&Topic=" + Eval("Topic"))%>' runat="server" Text='<%# IIf(Eval("VideoName") Is DBNull.Value, "", "Video")%>'></asp:hyperlink>

猜测一下,可能是因为您在
内容处置
标题中从文件名中豁免了扩展名。而且,如果你的最终名称中有空格,你的标题会被弄乱;你可能应该逃避它。e、 g

/* ... */

var contentDisposition = new System.Net.Mime.ContentDisposition("attachment")
{
    FileName = FinalName + ".mp4"
}:

// Properly encode header using ContentDisposition class.
Response.AddHeader("Content-Disposition", contentDisposition.ToString());

该类可以根据需要为您生成标题并对其进行编码。

检查您的服务器是否设置了正确的MIME类型。假设IIS——我用您的Response.AddHeader代码替换了我的Response.AddHeader代码,并添加了var contentDisposition,与您上面所做的完全一样,它工作正常。非常感谢。
/* ... */

var contentDisposition = new System.Net.Mime.ContentDisposition("attachment")
{
    FileName = FinalName + ".mp4"
}:

// Properly encode header using ContentDisposition class.
Response.AddHeader("Content-Disposition", contentDisposition.ToString());