【问题标题】:Export a file by showing Save As Dialogue通过显示“另存为”对话框导出文件
【发布时间】:2015-03-28 21:34:32
【问题描述】:
string fileName = "1001-1000-1_29_2015 2_04_22 PM.wav";
string filePath = Server.MapPath("Audio") + "\\" + fileName;

在 IE 中,我使用以下行来导出我的 .wav 文件。

Response.Redirect("Audio/" + fileName);

Response.Redirect(); 用于将用户重定向到任何内容(页面、文件等)。所以在 IE 中它会向用户显示一个SaveAsDialogue 来保存它。

但是在chrome中,浏览器的默认行为是重定向到指定文件并在chrome中播放。

我想通过在两个浏览器中提供SaveAsDialogue 来导出我的.wav 文件。

我为 chrome 尝试了以下代码:

Response.Clear();
Response.ContentType = "Audio/wav";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.TransmitFile(filePath);
Response.Flush();
Response.End();

但我仍然没有成功在 Chrome 中传输我的.wav 文件。

【问题讨论】:

    标签: c# asp.net google-chrome internet-explorer savefiledialog


    【解决方案1】:

    这将对其进行排序;通过将内容的 mime 类型更改为通用类型:

    Response.Clear();
    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
    Response.TransmitFile(filePath);
    Response.Flush();
    Response.End();
    

    编辑:这是我正在使用的确切代码,它也适用于 WAV 文件:

    Response.Clear();
    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition", "attachment; filename="+ fileName);
    Response.WriteFile(file);
    Response.End();
    

    保存到对话是一项不能强制执行的客户端功能*。 IE 在第一个实例中提供它的唯一原因是因为它在尝试直接访问文件时不知道如何处理该文件。上面的方法是强制下载,而不是直接在浏览器中播放/渲染。 但是您可以右键单击链接并选择Save link as...

    *我想如果你在服务器上为文件类型错误地设置了 mime-type 然后使用你原来的 Response.Redirect 方法然后你可以但是你会弄乱服务器并导致头痛无止境下线。

    如果您想更改 Chrome 以在每次将下载保存到哪里时询问您需要进入 设置,请点击 显示高级设置... 然后滚动向下到 下载 标题,您会看到如下内容:

    【讨论】:

    • 我已经在 Chrome 中检查了我的下载,但在我的情况下它没有影响它。
    • 您编辑的答案,在以任何格式导出音频文件的情况下仍然无法正常工作。
    • 不能以什么方式工作?只是不下载吗?还是您遇到了某种错误?
    • 通过使用这两种方式,IEChrome 都没有响应。没有错误信息,没有提示,什么都没有……
    • 提供的代码来自一个工作示例,因此您的页面上肯定有其他问题。第一个版本与您的原始版本相同,但内容类型已切换,所以我看不出这是如何阻止页面工作的。您确实需要逐步调试调试器,看看失败的原因和位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 2021-08-20
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多